使用JsonPath获取Json密钥

时间:2018-08-31 11:33:56

标签: json jsonpath

我正在努力编写一个JsonPath查询以从以下示例Json中提取特定的密钥。

{
    "initial": "somevalue",
    "somekey2": {
        "inner1": "innerval1",
        "inner2": "innerval2"
    }
}

例如:
1)我希望提取第一个键,在这种情况下为initial。使用JsonPath是否可能?

2)获取一个内部密钥,例如inner1。类似于$."initial"."somekey2",但返回仅包含键(inner1inner2)的数组。

2 个答案:

答案 0 :(得分:1)

不确定json路径,但是假设您的对象是

a={
    "initial": "somevalue",
    "somekey2": {
        "inner1": "innerval1",
        "inner2": "innerval2"
    }
};

您可以使用Object.keys(a)获取所有密钥 将提供键数组[“ initial”,“ somekey2”] 那么您可以使用该键来获取其嵌套值

a[Object.keys(a)[1]] // returns {inner1: "innerval1", inner2: "innerval2"}

您可以对所有嵌套元素重复相同的操作

答案 1 :(得分:0)

This这样的问题就解决了。

  1. $.*~返回
[
  "initial",
  "somekey2"
]
  1. $.somekey2.*~返回
[
  "inner1",
  "inner2"
]
  1. 要获取所有二阶孩子,请使用$.*.*~。基本上是n阶,$.(n times *).*~