Json反序列化

时间:2013-10-09 00:44:05

标签: c# json

我知道这个问题已被多次询问但是我已经尝试了很多解决方案,到目前为止我还没有尝试使用Json.Net,JavaScriptSerializer ......等等。

以下是我想要反序列化的Json示例。注意我在使用C#的Win Form应用程序中构建它我希望能够反序列化为类。

{
  "data": [
    {
        "ID": "4f351ef7005fc2b7a6fcd3e4a4ddb4fe",
        "name": "Distorted Packages",
        "objCode": "OPTASK",
        "owner": {
            "ID": "4f16e4cb0043332b4bfc602927dbb1c0",
            "name": "Marjorie Rolan",
            "objCode": "USER",
            "title": null,
            "phoneNumber": null,
            "lastSurveyedOn": null,
            "showWhatsNew": true
        },
        "primaryAssignment": null
    },
    {
        "ID": "4f3522a40060146c9fd7f36e49a4cf47",
        "name": "More issues on k.com",
        "objCode": "OPTASK",
        "owner": {
            "ID": "4f16e4cb0043332b4bfc602927dbb1c0",
            "name": "Marjorie Rolan",
            "objCode": "USER",
            "title": null,
            "phoneNumber": null,
            "lastSurveyedOn": null,
            "showWhatsNew": true
        },
        "primaryAssignment": null
    }
  ]
}

感谢。

1 个答案:

答案 0 :(得分:1)

因此,遵循JSON.net路径,您需要一个映射到您的数据的c#类。对于发布的JSON,这应该有效:

class JSONThing {
  public JSONThingData[] { get; set; }
}

class JSONThingData {
  public string ID { get; set; }
  public string name { get; set; }
  public string objcode { get; set; }
  public JSONThingDataOwner owner { get; set;}
}
...

要反序列化这一切,您只需将根类和JSON字符串传递给JsonConvert.DeserializeObject函数,如下所示:

JSONThing thing = JsonConvert.DeserializeObject<JSONThing>(json);