如何使用 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