JSON Query如何使用通配符匹配指定前缀的folder字段值?
JSONPath前缀匹配查询解决方案
你之前使用的精确相等匹配语法只能命中完全符合路径值的单条记录,直接在相等条件中写*通配符无法生效,JSONPath中字符串的模糊匹配需要通过正则匹配操作符实现。
适配你使用的测试工具的正确查询语句如下:
$[?(@.folder =~ /^User\/Admin\//)]
语法说明
=~是JSONPath标准的正则匹配操作符,用于校验字段值是否符合指定的正则规则- 正则表达式
/^User\/Admin\//的逻辑:- 开头的
^代表匹配字符串的起始位置,保证只会命中以目标前缀开头的路径 - 路径中的
/需要用转义符\处理为\/,避免和正则表达式的首尾边界符冲突 - 无需额外写后缀规则,只要路径开头匹配就会被命中
- 开头的
执行上述查询后会返回所有folder前缀为User/Admin/的两条记录,对应Linda和Peter的信息,符合你的需求。
内容的提问来源于stack exchange,提问作者SahnAlbert
相关产品推荐
相关产品推荐

