【发布时间】:2015-05-06 13:10:25
【问题描述】:
这是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_receiptList[i] 转换为字典。
【问题讨论】:
-
那么
m_receiptList[i]的运行时类型是什么? -
一般的想法是你自己写一个类,它的属性对应于 JSON 数据的格式。然后,您将特定于序列化的属性添加到类和属性中,并使用该属性来反序列化 JSON 消息。
JsonConvert.DeserializeObject<MyNiftyClass>(...). -
Dictionary 将在哪里获取 Key 的字符串?您不能将数组转换为字典,它们是完全不同的东西。你也许可以把它变成
List<object>,但不能变成字典。 -
@user2225104 嗨,是的,我可以写,但服务器数据可能会不时更改,所以如果我有 system.object,那么只要有来自服务器的更新,我就不必管理类。
-
@bali182 它是一个system.object,它有一个字符串和jtoken的字典。
标签: c# json dictionary json.net