如何使用 SelectToken 在嵌套动态 JSON 中查找值
How to use SelectToken to find value in nested dynamic JSON
我不知道如何使用 JToken 获取 "Total Income" 数量的“325.00”。
我尝试了好几行不同的代码,但似乎遗漏了一些明显的东西。
{
"Rows": {
"Row": [
{
"Rows": {
},
"type": "Section",
"group": "Income",
"Summary": {
"ColData": [
{
"value": "Total Income"
},
{
"value": "325.00"
}
]
}
},
{
}
]
}
}
对于您在问题中给出的特定 JSON 示例,您可以使用 SelectToken
提取 325.00
值,如下所示:
var obj = JObject.Parse(json);
var amount = (string)obj.SelectToken("Rows.Row[0].Summary.ColData[1].value");
Fiddle: https://dotnetfiddle.net/WRMAVu
如果您想同时提取标签和数量,您可以使用 SelectTokens
而不是 ColData
索引的通配符:
var obj = JObject.Parse(json);
var values = obj.SelectTokens("Rows.Row[0].Summary.ColData[*].value")
.Select(t => (string)t)
.ToArray();
Fiddle: https://dotnetfiddle.net/DHZhS2
我不知道如何使用 JToken 获取 "Total Income" 数量的“325.00”。
我尝试了好几行不同的代码,但似乎遗漏了一些明显的东西。
{
"Rows": {
"Row": [
{
"Rows": {
},
"type": "Section",
"group": "Income",
"Summary": {
"ColData": [
{
"value": "Total Income"
},
{
"value": "325.00"
}
]
}
},
{
}
]
}
}
对于您在问题中给出的特定 JSON 示例,您可以使用 SelectToken
提取 325.00
值,如下所示:
var obj = JObject.Parse(json);
var amount = (string)obj.SelectToken("Rows.Row[0].Summary.ColData[1].value");
Fiddle: https://dotnetfiddle.net/WRMAVu
如果您想同时提取标签和数量,您可以使用 SelectTokens
而不是 ColData
索引的通配符:
var obj = JObject.Parse(json);
var values = obj.SelectTokens("Rows.Row[0].Summary.ColData[*].value")
.Select(t => (string)t)
.ToArray();
Fiddle: https://dotnetfiddle.net/DHZhS2