我有以下Json:http://pastebin.com/pd62g62w
如何反序列化"sensors"
并将其转换为数组/列表?
我正在使用Json.NET进行反序列化。
DeviceModel deviceModel = new DeviceModel();
deviceModel = JsonConvert.DeserializeObject<DeviceModel>(json);
我目前的代码:
using System;
using Newtonsoft.Json;
namespace Homecheck.Models {
public class DeviceModel {
public string error { get; set; }
public string errorType { get; set; }
[JsonProperty(PropertyName = "_id")]
public string id { get; set; }
[JsonProperty(PropertyName = "_user")]
public string user { get; set; }
[JsonProperty(PropertyName = "_serial")]
public string serial { get; set; }
}
}
答案 0 :(得分:2)
为传感器对象创建一个类
public class Sensor {
public bool Active { get; set; }
[JsonProperty(PropertyName = "_description")]
public bool Description { get; set; }
/* and so on */
}
然后将其作为IEnumerable<Sensor>
属性添加到您的模型中:
public class DeviceModel {
/* existing properties omitted */
public IEnumerable<Sensor> Sensors { get; set; }
}
IEnumerable<Sensor>
为您提供了一个遍历所有元素的界面。
如果您想要列表语义(添加,删除,按索引访问),或者如果您只想通过索引访问,请使用数组IList<Sensor>
,也可以使用Sensor[]
。