尝试使用json.net反序列化json字符串的这种和平,但是在反序列化时我总是会遇到异常。任何人都可以帮我设置类,以便反序列化。
由于
{
"type":"some_type",
"version":"0.1",
"data":
{
"item_name_1":
{
"id":266,
"key":"aaa",
"name":"aaa",
"title":"title_1",
"info":
{
"property_1":9,
"property_2":4,
}
},
"item_name_2":
{
"id":266,
"key":"bbb",
"name":"bbb",
"title":"title_2",
"info":
{
"property_1":93,
"property_2":24,
}
}
}
}
答案 0 :(得分:1)
在info
的最后一个属性之后有一个逗号(,),这不应该存在。
我总是使用jsonlint来检查我的json对象中是否有任何错误。
{
"type":"some_type",
"version":"0.1",
"data":
{
"item_name_1":
{
"id":266,
"key":"aaa",
"name":"aaa",
"title":"title_1",
"info":
{
"property_1":9,
"property_2":4
}
},
"item_name_2":
{
"id":266,
"key":"bbb",
"name":"bbb",
"title":"title_2",
"info":
{
"property_1":93,
"property_2":24
}
}
}
}
答案 1 :(得分:0)
如果我们忽略逗号,这显然是一个错字
问题是因为item_name可以命名为different(item_name_1,_2 ......
是的,这是完全正确的;名字需要匹配。如果您需要映射不匹配的内容,您需要 提供自定义转换器,或者(通常更简单)将数据映射到字典中 - 即你可能有:
public Dictionary<string, Item> data {get;set;}
(代表"data":
节点)
这将产生键值对,其中每个键是字段名称("item_name_1"
等),每个值都是Item
实例(具有属性id
,{ {1}},key
等。)
即
name