【发布时间】:2017-06-07 05:08:29
【问题描述】:
我正在尝试从像这样的 JSON 请求响应中接收数据:
{ “cnt”:1, “列表”:[{ “坐标”:{ “隆”:18.55, “纬度”:50.11 }, “系统”:{ “类型”:1, “身份证”:5356, “消息”:0.0095, "国家":"PL", “日出”:1496630290, “日落”:1496688673 }, “天气”:[{ “身份证”:800, “主要”:“清除”, "description":"晴朗的天空", “图标”:“01d” }], “主要的”:{ “温度”:293.71, “压力”:1014, “湿度”:42, “temp_min”:293.15, “最高温度”:294.15 }, “能见度”:10000, “风”:{ “速度”:4.1, “度数”:60 }, “云”:{ “全部”:0 }, “DT”:1496686603, “身份证”:7531758, “名称”:“雷布尼克” }] }
我正在尝试使用 JSON.NET 反序列化 JSON 并接收数据。但我不知道如何正确地做到这一点。 我试图通过使用我的类方法来实现这一点:
public Rootobject DeserializeJSON()
{
private JObject responseObject;
private JToken responseToken;
private JArray responseArray;
responseObject = JObject.Parse(json);
Rootobject Weather = new Rootobject();
responseArray = (JArray)responseObject.SelectToken("list");
responseToken = (JToken)responseArray.SelectToken("main");
Weather = responseToken.ToObject<Rootobject>();
return Weather;
}
但它似乎不起作用。在这种情况下,我尝试从 JSON 中的“main”属性接收数据并转换为我的类对象:
class Main
{
public float temp { get; set; }
public float pressure { get; set; }
public float humidity { get; set; }
public float temp_min { get; set; }
public float temp_max { get; set; }
}
请您解释一下,它应该如何工作以及我的错在哪里?
【问题讨论】:
-
在 SO 上有无数个重复的问题,更不用说 json.net 上的一个可爱的帮助页面了。无需自定义方法。
-
是的,你是对的。在询问之前,我试图先找到解决方案......但我没有足够的尝试。抱歉复制。下次我会更有耐心。