介绍
JsonPath是一种能够提取部分JSON文档属性、对象、数组的语法,支持条件过滤、数学运算、字符串处理等功能。JsonPath与JSON文档就像 XPath 表达式与 XML 文档结合使用一样。
由于 JSON 结构通常是匿名的,并不一定和XML一样具有“根成员对象”,因此 JsonPath假定分配$给外层对象的抽象名称。JsonPath由用点分隔的表达式段(操作符)组成。 操作符可以是一个简单的词,如 JSON 值名称、*,也可以是括在方括号 [ ] 中的更复杂的构造。 括号段前的分隔点是可选的,也可以省略。下面是几种JsonPath的提取JSON文档内容语法:
| JsonPath | 描述 |
|---|---|
| $.object.name | 返回object.name的内容。 |
| $.object[‘name’] | 返回object.name的内容。 |
| $.object.[‘name’] | 返回object.name的内容。 |
| $.object.history.length() | 返回object.history数组元素的个数。 |
| $[?(@.name == ‘Object’)].price.first() | 返回第一个名为’Object’的对象的价格字段。 |
| $[?(@.price > 10)].length() | 返回price大于10的对象个数。 |
Jayway JsonPath是Stefan Goessner JsonPath的Java实现,是用于读取JSON文档的Java DSL。本文主要通过Jayway JsonPath来简单介绍JsonPath的使用语法,通过真实报文案例来进行操作。
支持的操作符
| 操作符 | 描述 |
|---|---|
$ |
查询的根节点对象,表示一个json的数据,可以是对象或数组 |
@ |
当前节点对象 |
* |
通配符,获取所有节点 |
.. |
递归查找,查找所有层次的属性值 |
<name> |
按名称匹配对象属性。 |
.<name> |
按照名称查找子节点 |
['<name>','<name>',...] |

最低0.47元/天 解锁文章
2257

被折叠的 条评论
为什么被折叠?



