JSON Path 获取对象元素及语法介绍
根对象使用 $ 来表示,而无需区分是对象还是数组。
表达式可以使用.,也可以使用[]。如:
$.store.book[0].title 或 $'store'0。
表达式(<expr>)可用作显式名称或索引的替代,如:
$.store.book[(@.length-1)].title 表示获取最后一个 book 的 title。
使用符号@表示当前对象。过滤器表达式通过语法支持,?(<boolean expr>)如:
$.store.book[?(@.price < 10)].title 表示获取价格小于 10 的所有 book 的 title。
要点:
$ 表示文档的根元素
@ 表示文档的当前元素
.node_name 或 ['node_name'] 匹配下级节点
[index] 检索数组中的元素
[start:end:step] 支持数组切片语法
- 作为通配符,匹配所有成员
.. 子递归通配符,匹配成员的所有子元素
(<expr>) 使用表达式
?(<boolean expr>)进行数据筛选
注意:
JsonPath 的索引从0开始计数
JsonPath 中字符串使用单引号表示,例如:$.store.book[?(@.category=='reference')]中的'reference'
你可以在此处验证 JsonPath 的执行效果。
参考文档: