使用JSON Path查找一个以某些内容开头的JSON属性名称

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

本文关键字:JSON 开头 属性 查找 Path 一个以 使用      更新时间:2023-09-26

是否可以使用JSON Path找到与正则表达式模式匹配(或至少以开头)的属性name。在XPath中,我可以使用name(),但我还没有找到等效的JSON路径。

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

我会感兴趣的使用任何javascript包这样做。目前,我正在使用JSONPath。

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

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

以上假设您使用的是ES6。

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

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