Json到C#反序列化嵌套在Object中的对象

时间:2018-03-24 14:27:39

标签: c# json.net

我让Json这样:

   {  
   "data": {
      "50014992": {
        "value1": "fr",
        "value2": 1378928660,
        "value3": 500149927
      },
     "500149928": {
        "value1": "fr",
        "value2": 1378928660,
        "value3": 500149927
      },
      "50014999": {
        "value1": "fr",
        "value2": 1378928660,
        "value3": 500149927
      },
      "50014991": {
        "value1": "fr",
        "value2": 1378928660,
        "value3": 500149927
      }
    }
  }

我试图通过Newtonsoft Json反序列化它:

public class Test
{
    public Data data { get; set; }

    public class Data
    {
        public Dictionary<int, Values> values { get; set; }
    }
    public class Values
    {
        public string value1 { get; set; }
        public int value2 { get; set; }
        public int value3 { get; set; }
    }
}

反序列化不会引发错误,但值始终为NULL

如何使用嵌套在另一个对象中的不同键反序列化多个对象?

1 个答案:

答案 0 :(得分:1)

我不确定,因为我现在无法测试。但是,您应该将data类型从自定义类更改为Dictionary<string, Values>

正好string而不是int因为在你的Json中你有这些数字在括号中,我记得,Json库不会为你解析它们。

所以最终的类结构看起来应该是这样的:

public class Test
{
    public Dictionary<string, Values> data { get; set; }
}

public class Values
{
    public string value1 { get; set; }
    public int value2 { get; set; }
    public int value3 { get; set; }
}