反序列化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": []
}
答
您的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; }
}
http://json2csharp.com/ –
在Visual Studio中,它只是复制'SpecialPaste Json作为类 –
您是否想要一个工具来完成所有工作(这很好,直到JSON发生变化,但是如果JSON一致,那么会好的),还是你想要控制细节的代码? – Richard