如何使用JSONPath筛选出匹配特定ID的JSON元素
你使用的JSONPath表达式存在两处语法问题导致无法正确筛选:
- 多余的
.*通配符:StatementLine本身就是数组结构,无需额外添加通配符遍历子节点,否则会同时匹配到嵌套在BankRuleMatch内的StatementLineID字段,导致筛选规则失效。 - 判等符号错误:大部分JSONPath解析器要求判等使用双等号
==,不支持单等号的判等逻辑。
正确查询表达式
$.StatementLine[?(@.StatementLineID == '780e0c0f-f62f-42f8-96ad-9a2db62e6271')]
表达式里的@指代当前遍历的数组元素,指定从当前元素根路径下匹配StatementLineID字段,避免匹配到嵌套子对象里的同名字段,使用上述表达式即可返回你需要的目标元素。
内容的提问来源于stack exchange,提问作者Martin Thompson
相关产品推荐
相关产品推荐

