如何使用JsonPath提取所有以'tag_'开头的键值对?
如何用JsonPath提取所有以'tag_'开头的键值对
可以通过JsonPath的键名正则匹配功能提取目标数据,以下是具体实现方案:
适用的JsonPath表达式(以Jayway JsonPath为例)
Jayway是目前应用较广的JsonPath实现,支持通过@property获取属性名并结合正则筛选:
$.json.extensions.attributes.*[?(@property=~/^tag_.*/)]
部分工具可能使用matches替代正则匹配符号=~,写法如下:
$.json.extensions.attributes.*[?(@property matches '^tag_.*')]
表达式说明
$.json.extensions.attributes:精准定位到存放tag键值对的对象节点*:遍历该对象下的所有属性[?(@property=~/^tag_.*/)]:过滤出键名匹配正则^tag_.*/的属性,也就是所有以tag_开头的键值对
提取结果示例
执行上述表达式后,会得到以下目标数据:
{ "tag_aa": "PROJECT_aa", "tag_bb": "aa_aa", "tag_cc": "cc_cc", "tag_dd": "dd_dd" }
注意事项
不同JsonPath实现的语法细节可能存在差异,比如部分轻量工具可能不支持@property或正则匹配,使用前建议先在对应工具中测试语法兼容性。
内容的提问来源于stack exchange,提问作者testo123
相关产品推荐
相关产品推荐

