【发布时间】:2021-07-15 07:57:05
【问题描述】:
查询JSON对象而不是编写多个foreachloops的简单方法是什么?
示例 JSON
{
"result_index": 0,
"results": [
{
"final": true,
"alternatives": [
{
"delta": 0.9,
"timestamps": [
[
"hi",
2.55,
2.81
]
]
}
]
}
]
}
有没有办法将多个关注foreach 替换为单个foreach
var rawData = JObject.Parse(responseString);
var results = rawData["results"];
foreach (var item in results)
{
foreach (var alternative in item["alternatives"])
{
foreach (var timestamp in alternative["timestamps"])
{
}
}
}
【问题讨论】:
-
正确反序列化,然后使用SelectMany
-
目前我们不知道
results的类型,也不知道您使用的是哪个 JSON 库,因此很难给出具体答案。例如,Json.NET 支持 JSON 路径,这可能会对您有所帮助(请参阅 newtonsoft.com/json/help/html/QueryJsonSelectTokenWithLinq.htm),但我们不知道您是否使用 Json.NET... -
@JonSkeet 是的,我正在使用 Json.NET
-
对,所以请编辑问题以明确说明,最好提供minimal reproducible example。