C# 将json字符串反序列化为对象数组,然后将其强制转换为字典?

C# 将json字符串反序列化为对象数组,然后将其强制转换为字典?,c#,json,dictionary,json.net,C#,Json,Dictionary,Json.net,这是json字符串 [{"ProductIdentifier":"{test:'some data'}","validationCompleted":0}] 我正在尝试将一个对象反序列化为一个对象数组,该数组工作正常,但当我尝试将其转换回字典时,我遇到了一个异常,任何人都可以帮助我完成此操作吗?谢谢 m_receiptsList is an object[] m_receiptsList = JsonConvert.DeserializeObject<object[]>

这是json字符串

[{"ProductIdentifier":"{test:'some data'}","validationCompleted":0}]
我正在尝试将一个对象反序列化为一个对象数组,该数组工作正常,但当我尝试将其转换回字典时,我遇到了一个异常,任何人都可以帮助我完成此操作吗?谢谢

    m_receiptsList is an object[] 
 m_receiptsList = JsonConvert.DeserializeObject<object[]>(pastJsonString,
                                                        new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All});
  for(int i=0; i<m_receiptsList.Length; i++)
{
    Dictionary<string, object> receiptItem = (Dictionary<string, object>)m_receiptsList[i]; 
 bool breceipt = receiptItem["validationCompleted"].Equals(0);
}
m_receiptsList是一个对象[]
m_receiptsList=JsonConvert.DeserializeObject(pastJsonString,
新的JsonSerializerSettings{TypeNameHandling=TypeNameHandling.All});

对于(int i=0;i如果希望Json.NET将Json反序列化为字典数组,则需要告诉它这样做:

        object[] m_receiptsList;
        m_receiptsList = JsonConvert.DeserializeObject<Dictionary<string, object>[]>(pastJsonString, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All });

m_receiptList[i]
的运行时类型是什么?一般的想法是,您自己编写一个类,该类的属性与JSON数据的格式相对应。然后,您将序列化特定的属性添加到该类和属性中,并使用该属性来反序列化JSON消息。
JsonConvert.DeserializeObject(...)
。字典从哪里获取键的字符串?你不能将数组强制转换为字典,它们是完全不同的东西。你可以将其转换为
列表,但不能转换为字典。@user2225104 Hi是的,我可以编写,但服务器数据可能会不时更改,因此如果我有system.object,那么我就没有了每当有来自服务器的更新时管理该类。@bali182它是一个system.object,它的idictionary为string和jtoken。是的,我确实这样做了,非常感谢您的回答:)
        foreach (IDictionary<string, object> dict in m_receiptsList)
        {
            bool breceipt = dict["validationCompleted"].Equals((long)0);
        }