[英]Deserializing JSON in .net with incremental integer
我的飞利浦色相灯泡有一些JSON。 看起来像这样。
{
"1": {
"state": {
"on": false,
"bri": 75,
"hue": 60309,
"sat": 192,
"effect": "none",
"xy": [
0.5002,
0.2691
],
"ct": 443,
"alert": "select",
"colormode": "xy",
"reachable": false
},
"swupdate": {
"state": "noupdates",
"lastinstall": null
},
"type": "Extended color light",
},
"2": {
"state": {
"on": true,
"bri": 254,
"hue": 38000,
"sat": 254,
"effect": "none",
"xy": [
0.1603,
0.3238
],
"ct": 153,
"alert": "select",
"colormode": "hs",
"reachable": true
},
"swupdate": {
"state": "noupdates",
"lastinstall": null
},
"type": "Extended color light",
},
"3": {
"state": {
"on": true,
"bri": 254,
"hue": 38000,
"sat": 254,
"effect": "none",
"xy": [
0.1603,
0.3238
],
"ct": 153,
"alert": "none",
"colormode": "hs",
"reachable": true
},
"swupdate": {
"state": "noupdates",
"lastinstall": null
},
"type": "Extended color light",
}
}
如您所见,对于添加到系统中的每个灯泡,每个灯泡都有一个数字1、2、3等。
如何创建反序列化此数据的模型? 我试过的不起作用。
using (var getclient = new HttpClient())
{
Rootobject model = new Rootobject();
string bulburl = "http://<ip>/api/<token>/lights";
Console.WriteLine($"URL: {bulburl}");
var json = await getclient.GetStringAsync(bulburl);
Console.WriteLine("Json count: " + json.ToString().Count());
model = JsonConvert.DeserializeObject<Rootobject>(json);
Console.WriteLine("model count: " + model.ToString().Count());
return View(model);
}
我主要进口的我的物品。 当我尝试直接将其导入时,将其拆分为1_ 2_ 3_等。
public class Rootobject
{
public BulbNumber[] bulbnumber { get; set; }
}
public class BulbNumber
{
public State[] state { get; set; }
public Swupdate swupdate { get; set; }
public string type { get; set; }
public string name { get; set; }
public string modelid { get; set; }
public string manufacturername { get; set; }
public string uniqueid { get; set; }
public string swversion { get; set; }
public string swconfigid { get; set; }
public string productid { get; set; }
}
public class State
{
public bool on { get; set; }
public int bri { get; set; }
public int hue { get; set; }
public int sat { get; set; }
public string effect { get; set; }
public float[] xy { get; set; }
public int ct { get; set; }
public string alert { get; set; }
public string colormode { get; set; }
public bool reachable { get; set; }
}
public class Swupdate
{
public string state { get; set; }
public object lastinstall { get; set; }
}
var dict = JsonConvert.DeserializeObject<Dictionary<string, BulbNumber>>(json);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.