Json 反序列化

本文关键字:反序列化 Json | 更新日期: 2023-09-27 18:34:41

我知道这个问题已经被问了很多次,但我尝试了很多解决方案,到目前为止没有任何效果,我尝试使用 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
    }
  ]
}

谢谢。

Json 反序列化

因此,按照 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);