C# - 在Json中反序列化Json

时间:2015-07-28 10:55:50

标签: c# json

我有以下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; }
    }
}

1 个答案:

答案 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[]