C# JSON.net访问嵌套数组、对象
在这个JSON()中,我如何访问嵌套数组 timeseries.shortname?我试过这样做,但没用C# JSON.net访问嵌套数组、对象,c#,json,json.net,C#,Json,Json.net,在这个JSON()中,我如何访问嵌套数组 timeseries.shortname?我试过这样做,但没用 string url = "http://www.pegelonline.wsv.de/webservices/rest-api/v2/stations.json?includeTimeseries=true&includeCurrentMeasurement=true"; HttpWebRequest request = HttpWebRequest.CreateHttp(url
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个项可以工作,但最后一个(timeseries)给出了以下错误:无法对空引用执行运行时绑定动态
属性为您提供JToken
对象。在这些属性上使用值
属性可以得到字符串
表示。为了使其类型安全,您需要解析/转换。由于您没有提供您的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
实例)。关于从上面以类型安全方式获取实际值的详细信息也适用于这里。实际的JSON响应是什么?我怀疑它丢失了或被错误地访问了。确保在问题中包含相关数据(不要期望人们关注链接:)。VS调试器只给出“无法对空引用执行运行时绑定”响应timeseries
是一个数组,请尝试item.timeseries[0]。shortname