做汽车配件出口用什么网站好些,求百度关键词搜索网站,维护网站需要什么技术,软件公司网站模版JsonPath是一种简单的方法来提取给定JSON文档的部分内容。 JsonPath有许多编程语言#xff0c;如Javascript#xff0c;Python和PHP#xff0c;Java。JsonPath提供的json解析非常强大#xff0c;它提供了类似正则表达式的语法#xff0c;基本上可以满足所有你想要获得的js…JsonPath是一种简单的方法来提取给定JSON文档的部分内容。 JsonPath有许多编程语言如JavascriptPython和PHPJava。JsonPath提供的json解析非常强大它提供了类似正则表达式的语法基本上可以满足所有你想要获得的json内容。maven中添加jar包JsonPath可在Central Maven存储库中找到。 Maven用户将其添加到您的POM。com.jayway.jsonpath json-path 2.2.0操作符操作说明$表示根元素当前元素. or []子元素n/a父元素*通配符表示所有的元素. .选择所有符合条件的节点[]迭代器标示如数组下标[,]连接操作符在XPath 结果合并其它结点集合。JSONP允许name或者数组索引。[start?step]数组切片操作?()过滤表达式()支持表达式计算函数函数可以在路径的尾部调用函数的输出是路径表达式的输出该函数的输出是由函数本身所决定的。函数描述输出min()提供数字数组的最小值Doublemax()提供数字数组的最大值Doubleavg()提供数字数组的平均值Doublestddev()提供数字数组的标准偏差值Doublelength()提供数组的长度Integer过滤器运算符过滤器是用于筛选数组的逻辑表达式。一个典型的过滤器将是[?(.age 18)]其中表示正在处理的当前项目。 可以使用逻辑运算符和||创建更复杂的过滤器。 字符串文字必须用单引号或双引号括起来([?(.color ‘blue)] 或者 [?(.color “blue”)]).操作符描述left等于right(注意1不等于1)!不等于小于小于等于大于大于等于~匹配正则表达式[?(.name ~ /foo.*?/i)]in左边存在于右边 [?(.size in [‘S, ‘M])]nin左边不存在于右边size(数组或字符串)长度empty(数组或字符串)为空Java操作示例json格式的数据{text: 张三,expensive: 6,body: {rvNoNum: 23,rvNoRecords: [{score: 4,rvAddress: 2,consignments: null}, {score: 8,rvAddress: 3,consignments: null}]}}测试代码private static void jsonPathTest() {JSONObject responseJson jsonTest();//调用自定义的jsonTest()方法获得json对象生成上面的json//输出text的值String text JsonPath.read(responseJson,$.text);//输出rvNoNum的值int rvNoNum JsonPath.read(responseString,$.body.rvNoNum);//输出rvNoRecords数组的第2个值List rvNoRecords JsonPath.read(responseString,$..rvNoRecords[1]);//输出rvNoRecords数组的第1和第2个值List rvNoRecords1 JsonPath.read(responseString,$..rvNoRecords[0,1]);//输出rvNoRecords数组中scoreexpensive的所有值List rvNoRecords2 JsonPath.read(responseString,$..rvNoRecords[?(.score $[expensive])]);//输出rvNoRecords[0]的rvAddress值String rvAddress1 JsonPath.read(responseJson, $.body.rvNoRecords[0].rvAddress);//输出全部rvAddress的值使用Iterator迭代List rvAddress JsonPath.read(responseJson,$.body.rvNoRecords[*].rvAddress);//输出rvNoRecords[*]中rvAddress 2的rvNoRecordsList rvAddress2 JsonPath.read(responseJson,$.body.rvNoRecords[?(.rvAddress 2)]);//输出rvNoRecords[*]中score5 的rvNoRecordsList score JsonPath.read(responseJson,$.body.rvNoRecords[?(.score5)]);//输出rvNoRecords[*]中含有consignments元素的rvNoRecordsList consignments JsonPath.read(responseString,$.body.rvNoRecords[?(.consignments)]);//输出该json中所有rvAddress的值List rvNoNum2 JsonPath.read(responseString,$..rvAddress);//输出rvNoRecords数组的长度List length JsonPath.read(responseString,$..rvNoRecords.length());//可以提前编辑一个路径并多次使用它JsonPath path JsonPath.compile($.body.rvNoRecords[*]);List rvNoRecords3 path.read(responseString);}到此这篇关于使用 JSONPath 解析 JSON 完整内容详解的文章就介绍到这了,更多相关使用 JSONPath 解析 JSON 完整内容详解内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们时间 2020-03-22