这篇文章主要介绍“JSONPATH json解析工具的使用”,在日常操作中,相信很多人在JSONPATH json解析工具的使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JSONPATH json解析工具的使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
我们提供的服务有:成都网站设计、网站建设、微信公众号开发、网站优化、网站认证、信丰ssl等。为1000+企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的信丰网站制作公司
1、jsonPath的在github上的网址如下:https://github.com/json-path/JsonPath
2、json-path 快速入门
一、json-path中的操作符

二、json-path中可以使用的函数

三、过滤操作符

3、maven依赖
com.jayway.jsonpath json-path 2.4.0
4、util 代码
package com.ysma.ppt.util.resource;
import com.jayway.jsonpath.*;
import com.jayway.jsonpath.spi.json.JsonSmartJsonProvider;
import com.ysma.ppt.intf.pojo.TemplateDO;
import org.springframework.cglib.beans.BeanMap;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @author ysma 2019-09-25
* JsonPath工具类
* JsonPath表达式可以使用点表示法:$.store.book[0].title
* 或括号表示法:$['store']['book'][0]['title']
*
* real_param_response表path字段存储格式仿点表示法,如store.book[1].isbn
*/
public class JsonPathUtil {
//JsonPath中的“根成员对象”始终称为$,无论是对象还是数组
private static final String ROOT_PREFIX = "$";
private static Configuration configuration;
static {
configuration = Configuration.builder().options(
Option.DEFAULT_PATH_LEAF_TO_NULL, // 如果路径不存在则返回null,而不要抛出PathNotFoundException
Option.SUPPRESS_EXCEPTIONS // 抑制异常的抛出,当设置了Option.ALWAYS_RETURN_LIST时返回[],否则返回null
).jsonProvider(new JsonSmartJsonProvider()).build();
}
/**
* 解析类
* @param resJsonStr 待解析的返参对象
* @param expectList 定义的预期结果集合
* @return 结果集
*/
public static Map parseJson(String resJsonStr, List expectList){
/*1.此处预先解析json,默认请情下JsonPath.read方法每掉一次都会重新解析json,此处预先解析好就不用每次都进行解析*/
DocumentContext context = JsonPath.parse(resJsonStr, configuration);
//2.构造返回结果
Map resultMap = new HashMap<>();
expectList.forEach(beanMap -> {
String path = String.join(".", ROOT_PREFIX, (String)beanMap.get("path"));
//beanMap.get("dataType") 数据类型的作用弱化了
Object val = context.read(path);
resultMap.put((String)beanMap.get("code"), val);
});
return resultMap;
}
/**groovy脚本中可使用此定制开发*/
public static Map parsePathJson(String resJsonStr, List 5、官网中说明了 过滤器的具体使用规则,为具体研发提供了很大的自由度和帮助
如testParse方法中Criteria的使用就是基于store.bicycle[?] 语义才可以继续的。多一步少一步都不行
参考:
https://blog.csdn.net/fu_huo_1993/article/details/88350147 给出了jsonpath的地址和api简图,非常好
https://www.baeldung.com/guide-to-jayway-jsonpath 给出了官网中对应的定义 非常好
到此,关于“JSONPATH json解析工具的使用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!