JsonPath.net - 使用查询来扁平化数据结构

问题描述 投票:0回答:1

使用JsonPath.net,是否可以编写一个查询来获取不同嵌套级别具有相同键的属性值?

例如,来自以下 JSON:

{
  "ObjA" : {
    "textValue" : "a1",
    "numValue" : 1
  },
  "ObjB" : {
    "objArray": [
      {
        "textValue": "b1",
        "numValue" : 1
      },
      {
        "textValue": "b2",
        "numValue" : 2
      }
    ]
  }
}

我们可以获得所有“textValue”的列表,即:

[
  "a1",
  "b1",
  "b2"
]

或全部“numValue”,即:

[
  1,
  1,
  2
]

我一直在尝试在 https://json-everything.net/json-path/ 上执行此操作,但我不知道如何实现。

jsonpath json-path-expression json-everything
1个回答
0
投票

JsonPath.net 支持递归下降运算符

".."
。 您可以使用它来降低 JSON 层次结构,然后通过将其添加到
".."
之后来选择特定属性,如下所示:

var path = JsonPath.Parse("$..textValue");

或者

var path = JsonPath.Parse("$..numValue");

演示小提琴在这里

© www.soinside.com 2019 - 2024. All rights reserved.