将嵌套的Json深层嵌套到静态类型,并递归使用自定义类型

时间:2015-02-17 17:23:16

标签: c# json json.net deserialization json-deserialization

我收到以下示例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扩展的可能性。

0 个答案:

没有答案
相关问题