0

如何在这个 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 项有效,但最后一项(时间序列)给出以下错误:无法对空引用执行运行时绑定

4

1 回答 1

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您所追求的实例)。从上面以类型安全的方式获取实际值的详细信息也适用于此处。

于 2013-09-22T19:00:38.480 回答