使用 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)]
是否可以使用 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)]