反序列化JSON到C#对象与数组数组

问题描述:

你好我有填充我的JSON文件到C#对象的严重问题,因为JSON包含“数组数组”。我需要用所有数组创建类,以便能够在反序列化之后将文件加载到那里,但是我不知道如何创建这样的结构。反序列化JSON到C#对象与数组数组

JSON文件:

{ 
    "status": true, 
    "result": [ 
     { 
      "ID": "1", 
      "UserID": "1001", 
      "web_id": "2753", 
      "certificate_id": "31", 
      "domain": "testsomething.com", 
      "status": "ssl_uninstalling", 
      "updated_at": "2017-02-15 15:08:04", 
      "IP": "xx.x.xxx.xxx", 
      "OS_version": "CentOS release 4.8" 
     }, 
     { 
      "ID": "2", 
      "UserID": "1001", 
      "web_id": "2753", 
      "certificate_id": "31", 
      "domain": "admin.testsomething.com", 
      "status": "ssl_uninstalling", 
      "updated_at": "2017-02-13 14:19:45", 
      "IP": "xx.x.xxx.xxx", 
      "OS_version": "CentOS release 4.8" 
     }, 
     { 
      "ID": "3", 
      "UserID": "1001", 
      "web_id": "2753", 
      "certificate_id": "31", 
      "domain": "www.testsomething16.com", 
      "status": "ssl_uninstalling", 
      "updated_at": "2017-02-16 16:22:40", 
      "IP": "xx.x.xxx.xxx", 
      "OS_version": "CentOS release 4.8" 
     }, 
     { 
      "ID": "4", 
      "UserID": "1001", 
      "web_id": "2753", 
      "certificate_id": "31", 
      "domain": "blog.testsomething.com", 
      "status": "ssl_uninstalling", 
      "updated_at": "2017-02-16 16:22:40", 
      "IP": "xx.x.xxx.xxx", 
      "OS_version": "CentOS release 4.8" 
     } 
    ], 
    "errors": [] 
} 
+2

http://json2csharp.com/ –

+1

在Visual Studio中,它只是复制'SpecialPaste Json作为类 –

+0

您是否想要一个工具来完成所有工作(这很好,直到JSON发生变化,但是如果JSON一致,那么会好的),还是你想要控制细节的代码? – Richard

您的JSON结构看起来像

public class Result 
{ 

    [JsonProperty("ID")] 
    public string ID { get; set; } 

    [JsonProperty("UserID")] 
    public string UserID { get; set; } 

    [JsonProperty("web_id")] 
    public string web_id { get; set; } 

    [JsonProperty("certificate_id")] 
    public string certificate_id { get; set; } 

    [JsonProperty("domain")] 
    public string domain { get; set; } 

    [JsonProperty("status")] 
    public string status { get; set; } 

    [JsonProperty("updated_at")] 
    public string updated_at { get; set; } 

    [JsonProperty("IP")] 
    public string IP { get; set; } 

    [JsonProperty("OS_version")] 
    public string OS_version { get; set; } 
} 

public class Rootobject 
{ 

    [JsonProperty("status")] 
    public bool status { get; set; } 

    [JsonProperty("result")] 
    public List<Result> result { get; set; } 

    [JsonProperty("errors")] 
    public List<object> errors { get; set; } 
} 

您可以使用Visual Studio为您创建JSON之外的类。 将您的JSON复制到剪贴板中。这意味着刚刚CTRL + Ç,然后去到Visual Studio编辑 - >选择性粘贴 - >粘贴JSON作为类

另一条出路,以创造一流的内在张力结构为您的JSON可能是你可以去json2csharp: generate c# classes from json创造类。

+0

非常感谢。它很容易,我花了很多时间。 –

我想你可以创建一个像下面的模型:

public class Example 
    { 
     public bool Status { get; set; } 
     public ResultModel ResultModel { get; set; } 
     public bool Error { get; set; } 

     public Example() 
     { 
      ResultModel = new ResultModel(); 
     } 
    } 

    public class ResultModel 
    { 
     public int ID { get; set; } 
     public int UserId { get; set; } 
     public int WebId { get; set; } 
    }