如何在此JSON(http://www.pegelonline.wsv.de/webservices/rest-api/v2/stations.json?includeTimeseries=true&includeCurrentMeasurement=true)中访问嵌套数组 timeseries.shortname?我试过这样但是不起作用。
string url = "http://www.pegelonline.wsv.de/webservices/rest-api/v2/stations.json?includeTimeseries=true&includeCurrentMeasurement=true";
HttpWebRequest request = HttpWebRequest.CreateHttp(url);
WebResponse response = await request.GetResponseAsync();
using (Stream stream = response.GetResponseStream())
{
JsonReader reader = new JsonTextReader(new StreamReader(stream));
dynamic info = JArray.Load(reader);
foreach (var item in info)
{
myModel.Add(new ItemModel()
{
uuid = item.uuid,
number = item.number,
city_longname = item.longname,
timeseries = item.timeseries.shortname
});
}
}
3个项目有效,但最后一个(时间序列)产生以下错误:无法对空引用执行运行时绑定
答案 0 :(得分:0)
dynamic
属性为您提供JToken
个对象。在这些属性上使用Value
属性可以获得string
表示。为了使其类型安全,您需要解析/转换。由于您未提供ItemModel
课程详情,因此我无法帮助您。
myModel.Add(new ItemModel()
{
uuid = item.uuid.Value,
number = item.number.Value,
city_longname = item.longname.Value
});
timeseries
属性是JArray
对象。您无法直接访问shortname
属性。您必须先选择一个索引(item.timeseries[5]
,例如,为您提供您所追求的JObject
实例。从上面以类型安全的方式获取实际值的详细信息也适用于此。