我在REST API响应中有JSON对象:
{
Result:
[
{
"id": 1,
"id_endpoint": 1,
"name": "Endpoint 1",
"description": "Endpoint 1",
"unit": "mmol",
"minthreshold": 30,
"maxthreshold": -15,
"id_device": 4,
"value": 7,
"time": "2016-12-24T21:20:19.000Z",
"address": "Endpoint 1",
"id_user": 1
}, {
"id": 2,
"id_endpoint": 1,
"name": "Endpoint 1",
"description": "Endpoint 1",
"unit": "mmol",
"minthreshold": 30,
"maxthreshold": -15,
"id_device": 4,
"value": 6,
"time": "2016-12-24T21:20:16.000Z",
"address": "Endpoint 1",
"id_user": 1
}, {
"id": 3,
"id_endpoint": 1,
"name": "Endpoint 1",
"description": "Endpoint 1",
"unit": "mmol",
"minthreshold": 30,
"maxthreshold": -15,
"id_device": 4,
"value": 8,
"time": "2016-12-24T21:18:38.000Z",
"address": "Endpoint 1",
"id_user": 1
}
],
StatusCode: 200
}
如果出现错误,他们会得到:
{
Result: null,
StatusCode: 404
}
我正在使用JSON.NET而且我已经上课 DeviceInfo.cs
public class DeviceInfo
{
public int DeviceID {get;set;}
public int EndpointID {get;set;}
public string DeviceName {get;set;}
public double MinThreshold {get;set;}
public double MaxThreshold {get;set;}
public double CurrentValue {get;set;}
public DateTime ValueTime {get;set;}
public string EndpointAddress {get;set;}
public int IDUser {get;set;}
}
我的问题是如何在JSON对象中解析Result数组并将其存储在DeviceInfo类中?
答案 0 :(得分:5)
你需要属性帮助Newtonsoft.Json将源映射到你的类。
public class DeviceInfo
{
[JsonProperty("id")]
public int DeviceID { get; set; }
[JsonProperty("id_endpoint")]
public int EndpointID { get; set; }
[JsonProperty("name")]
public string DeviceName { get; set; }
[JsonProperty("minthreshold")]
public double MinThreshold { get; set; }
[JsonProperty("maxthreshold")]
public double MaxThreshold { get; set; }
[JsonProperty("value")]
public double CurrentValue { get; set; }
[JsonProperty("time")]
public DateTime ValueTime { get; set; }
[JsonProperty("address")]
public string EndpointAddress { get; set; }
[JsonProperty("id_user")]
public int IDUser { get; set; }
}
你的json被包裹的外层。
public class RootObject
{
public List<DeviceInfo> Result { get; set; }
public int StatusCode { get; set; }
}
最后,您可以使用JsonConvert反序列化您的json。
var result = JsonConvert.DeserializeObject<RootObject>(json);
答案 1 :(得分:0)
您可以使用JsonDeserialize来解析json
var array = JsonConvert.DeserializeObject<List<DeviceInfo>>(str);
答案 2 :(得分:0)
请参阅以下代码:
var response = JsonConvert.DeserializeObject<Dictionary<string,object>>(JSONstring);
if(response != null && response["StatusCode"] == "200")
{
List<DeviceInfo> lstResult = JsonConvert.DeserializeObject<List<DeviceInfo>(response["Result"]);
}
我希望这会有所帮助。