如何使用JsonConvert反序列化复杂对象

时间:2014-04-08 06:25:20

标签: json.net

我想反序列化一个jsonData,我将把我和这里的类和json数据放在这里。

这是Json:

{
  "$id":"1",
  "Success":true,
  "Message":[],
  "Data: [
    {
      "$id":"2",
      "ID":1,
      "StudentCount":"30",
      "Boys":"15",
      "Girls":"15",
      "EntryDate":"2013-06-12T00:00:00"
    }
  ]
}

这是我写的反序列化。我没有收到任何错误 但显示与json相同的数据

WebClient wc = new WebClient();
string json = wc.DownloadString("http://localhost:43293/api/Common");
var oc = JsonConvert.DeserializeObject(json);

这是班级:

public class Outcome
   {
      public bool Success { get; set; }
      public List Message { get; set; }
      public object Data { get; set; }
      public Outcome()
         {
            Message = new List();
         }
    }

1 个答案:

答案 0 :(得分:0)

问题是您的Json对象Data无法反序列化为C#类型object的实例,因为您没有提供为$id, ID, StudentCount, ...提供属性的具体类

尝试为您的属性Data引入具体类或反序列化为动态对象:

dynamic oc = JsonConvert.Deserialize(json);