获取 JSON 中的密钥
Posted
技术标签:
【中文标题】获取 JSON 中的密钥【英文标题】:Get keys in 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 表达式作为参数传递... 【参考方案1】:我发现 tilda ~
符号能够检索它所调用的值的键。因此,对于您的示例,这样的查询:
$.*~
返回这个:
[
"key1",
"key2",
"key3"
]
另一个例子,如果我们有一个这样的 JSON 文档:
"key1": "val1",
"key2": "val2",
"key3":
"key31":"val31",
"key32":"val32"
这样的查询:
$.key3.*~
会返回这个:
[
"key31",
"key32"
]
请务必注意,这些示例适用于 JSONPath.com 和其他一些模拟器/在线工具,但有些则不能。这可能是因为我在JSONPath plus 文档中发现了 tilda(~) 运算符,而不是官方文档。
【讨论】:
以上是关于获取 JSON 中的密钥的主要内容,如果未能解决你的问题,请参考以下文章
仅当特定密钥对值与可迭代匹配时,才在 JSON 对象中获取多个 JSON 密钥对值