我收到以下示例Json消息,可以深层嵌套。事先不知道多深。
{
"body": {
"blmRequest": {
"events": [
{
"event": "Login",
"params": [
{
"key": "pin",
"value": "xxxx"
},
{
"key": "version",
"value": "xxxxxx"
},
{
"key": "NFC",
"value": "x"
}
]
},
{
"event": "TCD_Recargaxxxx",
"params": [
{
"key": "amt",
"value": "xx"
},
{
"key": "cel",
"value": "xxxx"
},
{
"key": "pin",
"value": "xxxx"
},
{
"key": "version",
"value": "xxxxxx"
},
{
"key": "NFC",
"value": "x"
}
]
}
]
}
}
}
我想将Json反序列化到我的班级。它作为一种Root对象工作:
public class Response
{
public OrderedDictionary<string, object> body { get; set; }
}
类OrderedDictionary<string,object>
是一个自定义词典,我希望在遍历深层次结构时找到所有Json对象。标准类List<object>
我想用于在遍历层次结构期间找到的所有Json Arrays。所有其他简单类型都应保存为普通对象。
不幸的是,Json.Net在一级深度后放弃并返回作为Dictionary一个JObject层次结构的值。
我也不能将ExpandoObject
用作OrderedDictionary
的值。
我可以在Json.Net中覆盖什么以及如何覆盖我的场景。 我想只使用Json.Net扩展的可能性。