如何遍历列表中的JArray项
本文关键字:JArray 列表 何遍历 遍历 | 更新日期: 2023-09-27 18:08:15
这是我的json数据:
{
"date": "2016-08-26",
"time_of_day": "14:19",
"request_time": "2016-08-26T14:19:59+01:00",
"station_name": "Derby",
"station_code": "DBY",
"departures": {
"all": [
{
"service": "22152000",
},
{
"service": "22150000",
},
{
"service": "22180008",
}
]
}
}
我要做的是把这些服务变量中的每一个从上面的json到一个列表。在此之后,我想在api链接中单独调用这些服务变量中的每一个。这是我的c#代码:
JArray items = new JArray();
items.Add(service["service"]);
int serviceLength = items.Count;
for (int i = 0; i < items.Count; i++)
{
string moreJson = get_web_content("http://transportapi.com/v3/uk/train/service/" + items[i] + "/" + date + "/" + hours + ":" + minutes + "/timetable.json?" + appID + "/" + appKey);
dynamic schedluedContent = JsonConvert.DeserializeObject(moreJson);
JArray items2 = new JArray();
foreach (JObject stops in schedluedContent.stops)
{
dr = dt.NewRow();
dr["Station Code"] = stops["station_code"];
dr["Station Name"] = stops["station_name"];
dr["Aimed Arrival Time"] = stops["aimed_arrival_time"];
dt.Rows.Add(dr);
GridViewTrainTimes.DataSource = dt;
GridViewTrainTimes.DataBind();
}
}
谢谢你的帮助!
您可以使用SelectTokens()
查找所有服务值。SelectTokens()
支持使用JSONPath语法使用通配符和/或过滤器查询嵌套在JSON对象深处的多个属性。
var services = stops
.SelectTokens("departures.all[*].service")
.Select(t => (string)t)
.ToList();
这里[*]
是通配符,返回departures.all[]
数组中的所有条目。
有关JSONPath的完整描述,请参阅此处。
样本小提琴。