1,读json文档
- 1.1,如果只读一次,直接使用JsonPath.read()静态方法读取json字符串
String json = "...";
List<String> authors = JsonPath.read(json, "$.store.book[*].author");
- 1.2,如果多次读取json文档,为了避免每次都解析json文档,首先要解析json字符串
String json = "...";
// 第一步解析字符串
Object document = Configuration.defaultConfiguration().jsonProvider().parse(json);
String author0 = JsonPath.read(document, "$.store.book[0].author");
String author1 = JsonPath.read(document, "$.store.book[1].author");
- 1.3,JsonPath提供了fluent API,这是最灵活的一种方式
String json = "...";
ReadContext ctx = JsonPath.parse(json);
List<String> authorsOfBooksWithISBN = ctx.read("$.store.book[?(@.isbn)].author");
List<Map<String, Object>> expensiveBooks = JsonPath
.using(configuration)
.parse(json)
.read("$.store.book[?(@.price > 10)]", List.class);
JsonPath.read()时序图