使用 JSON 路径查找以某些内容开头的 JSON 属性 名称

Find a JSON property name that starts with something using JSON Path

是否可以使用 JSON 路径找到匹配正则表达式模式(或至少以其开头)的 属性 name。在 XPath 中,我可以使用 name() 但我一直无法找到 JSON Path 等价物。

基本上,我要查找以 x- 开头的所有 属性 个名称。类似于 $..x-*.

我会对使用任何执行此操作的 javascript 程序包 感兴趣。目前,我正在使用 JSONPath.

根据我的谷歌搜索,这在标准 json path 中是不可能的。但是,jsonpath-plus 包使用 @path 扩展了规范;并使以下成为可能

$..[?(@path.includes("[\'x-"))]
$..*[?(@property === 'price' && @ !== 8.95)]

以上假定您使用的是 ES6

对其他人有用
您可以使用 =~ 左匹配正则表达式来使用正则表达式。如需更多信息,请访问 https://github.com/jayway/JsonPath

[?(@.name =~ /foo.*?/i)]