JsonPath表达式通常是用来路径检索Json的,是xpath在json的应用
我在工作中遇到一个接口,返回的json很复杂,嵌套6层,且中间的key值是变动的,这时要提取其中的部分数据,通过jsonobject、fastjson、gson都不行,这时想到用jsonpath来解决,一行代码就完事了。
eg:List<JSONArray> aList= JsonPath.read(re, "$..answer2");
$:代表根节点
..:从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。
在pom.xml中添加如下:
<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path</artifactId>
<version>2.4.0</version>
</dependency>
或者导入jsonPath所需jar包(json-path-0.8.1.jar,json-smart-1.1.1.jar,commons-lang-2.6.jar),
假如不使用jsonPath,就要通过一层一层的遍历获取json数据中的值,增加了代码的复杂度和工作量。