博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JsonPath的使用
阅读量:4327 次
发布时间:2019-06-06

本文共 1554 字,大约阅读时间需要 5 分钟。

语法:

JsonPath

描述

$

根节点

@

当前节点

.or[]

子节点

..

选择所有符合条件的节点

*

所有节点

[]

迭代器标示,如数组下标

[,]

支持迭代器中做多选

[start:end:step]

数组切片运算符

?()

支持过滤操作

()

支持表达式计算

 

需要的jar包:

commons-lang-2.6.jarjson-path-0.8.1.jarjson-smart-1.1.1.jar

对于如下的json,通过实例介绍JsonPath的使用

{ "store": {    "book": [       { "category": "reference",        "author": "Nigel Rees",        "title": "Sayings of the Century",        "price": 8.95      },      { "category": "fiction",        "author": "Evelyn Waugh",        "title": "Sword of Honour",        "price": 12.99,        "isbn": "0-553-21311-3"      }    ],    "bicycle": {      "color": "red",      "price": 19.95    }  }}

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
private 
static 
void 
jsonPathTest() {
    
JSONObject json = jsonTest();
//调用自定义的jsonTest()方法获得json对象,生成上面的json
     
    
//输出book[0]的author值
    
String author = JsonPath.read(json,
"$.store.book[0].author"
);
     
    
//输出全部author的值,使用Iterator迭代
    
List<String> authors = JsonPath.read(json,
"$.store.book[*].author"
);
     
    
//输出book[*]中category == 'reference'的book
    
List<Object> books = JsonPath.read(json,
"$.store.book[?(@.category == 'reference')]"
);              
     
    
//输出book[*]中price>10的book
    
List<Object> books = JsonPath.read(json,
"$.store.book[?(@.price>10)]"
);
     
    
//输出book[*]中含有isbn元素的book
    
List<Object> books = JsonPath.read(json,
"$.store.book[?(@.isbn)]"
);
     
    
//输出该json中所有price的值
    
List<Double> prices = JsonPath.read(json,
"$..price"
);
     
    
//可以提前编辑一个路径,并多次使用它
    
JsonPath path = JsonPath.compile(
"$.store.book[*]"
);
    
List<Object> books = path.read(json);
}

转载于:https://www.cnblogs.com/ceshi2016/p/7381398.html

你可能感兴趣的文章
FOC实现概述
查看>>
base64编码的图片字节流存入html页面中的显示
查看>>
这个大学时代的博客不在维护了,请移步到我的新博客
查看>>
GUI学习之二十一——QSlider、QScroll、QDial学习总结
查看>>
nginx反向代理docker registry报”blob upload unknown"解决办法
查看>>
gethostbyname与sockaddr_in的完美组合
查看>>
kibana的query string syntax 笔记
查看>>
旋转变换(一)旋转矩阵
查看>>
thinkphp3.2.3 bug集锦
查看>>
[BZOJ 4010] 菜肴制作
查看>>
C# 创建 读取 更新 XML文件
查看>>
KD树
查看>>
VsVim - Shortcut Key (快捷键)
查看>>
C++练习 | 模板与泛式编程练习(1)
查看>>
HDU5447 Good Numbers
查看>>
08.CXF发布WebService(Java项目)
查看>>
java-集合框架
查看>>
RTMP
查看>>
求一个数的整数次方
查看>>
点云PCL中小细节
查看>>