【问题标题】:Get keys in JSON获取 JSON 中的密钥
【发布时间】:2018-03-10 08:05:39
【问题描述】:

我从外部系统得到以下 JSON 结果:

{
  "key1": "val1",
  "key2": "val2",
  "key3": "val3"
}

现在我想使用 JSONPath 显示所有键和所有值。所以我正在寻找一些东西来获得key1、key2和key3。另外我想使用一个属性的索引,例如。 G。 $....[2].key 获取“key3”等。 有没有办法做这样的事情?

【问题讨论】:

  • 你看过 Object.keys( ) 吗?
  • 我只需要 JSONPath 表达式(您可以在 jsonpath.com 对其进行测试)就可以在我的系统中使用它。不幸的是,我无法使用 javascript 或任何其他代码。我只是可以将 JSONPath 表达式作为参数传递...

标签: json jsonpath


【解决方案1】:

我发现 tilda ~ 符号能够检索它所调用的值的键。因此,对于您的示例,这样的查询:

$.*~

返回这个:

[
  "key1",
  "key2",
  "key3"
]

另一个例子,如果我们有一个这样的 JSON 文档:

  {
  "key1": "val1",
  "key2": "val2",
  "key3": {
      "key31":"val31",
      "key32":"val32"
  }
}

这样的查询:

$.key3.*~

会返回这个:

[
  "key31",
  "key32"
]

请务必注意,这些示例适用于 JSONPath.com 和其他一些模拟器/在线工具,但有些则不能。这可能是因为我在JSONPath plus 文档中发现了 tilda(~) 运算符,而不是官方文档。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-02
    • 2019-02-06
    • 2018-01-16
    • 2020-11-28
    • 2021-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多