6,JsonPath进阶实战--JsonPath.read()源码时序图

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()时序图

JsonPath.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容