我尝试用JSON.NET解析JSON结构。第一级的所有属性都正确反序列化。
我有一个反序列化字典的问题。对象类型可以是任何东西:string,double,int,bool,List,Dictionary和递归。
示例JSON:
{
"id":"56d4f8sd4f86ds4f",
"name":"Azerty",
"dynProp": {
"xp":100,
"life":100,
"bonus": {
"force": 100,
"defense": 100
},
"ennemies": {
"beast": {
"wolf": 100,
"bear": 20
}
}
}
}
dynProp节点中的所有数据都是动态的,我无法知道对象类型,深度或任何内容。
dynProp对象的输出是这样的:
{{"dynProp","{xp:100, life: 100, bonus: {...}, ...}"}}
事实上,JSON.NET将对象值放在jobject中,而不是所有内容词典或类似的东西。
我尝试添加类似的序列化设置:
new JsonSerializerSettings
{
TypeNameHandling = TypeNameHandling.All,
TypeNameAssemblyFormat = FormatterAssemblyStyle.Simple
}
但没有成功......
提前感谢您的帮助!
编辑:我对另一个框架持开放态度但它必须适用于.net 2.0。
答案 0 :(得分:0)
我知道这个问题明确是关于JSON.NET的,但是希望你不了解真棒的ServiceStack库,我想添加一个建议,转而转向它。具体来说,ServiceStack.Text命名空间有一个much faster than JSON.NET's serializer的JSON Serializer。
此外,他们有一个JSONObject.Parse方法可以更好地处理您的用例(我相信)。看到这个堆栈溢出帖子几乎与你想要的匹配: