JsonPath - 缓存JSON然后执行多个查询?

时间:2018-01-23 00:26:32

标签: java jsonpath

我继承了一些针对单个JSON文件执行大量JsonPath查询的代码。对于每个查询,它都会传递JSON文件和查询。然后,这将调用JsonPath.read(jsonFile,jpathQuery)。

有没有办法避免让它构建JSON所需的内部结构然后执行查询?有没有办法让它构建一次JSON的内部模型,然后对它执行多个查询?

谢谢 - 戴夫

1 个答案:

答案 0 :(得分:3)

我假设你正在使用this jsonpath library

在他们的文档中,他们有这个

  

使用JsonPath最简单最直接的方法是通过   静态读取API。

String json = "...";
List<String> authors = JsonPath.read(json, "$.store.book[*].author");
     

如果您只想阅读一次就可以了。如果你需要阅读   其他路径也不是文件将要采用的方法   每次调用JsonPath.read(...)时都要解析。避免这个问题   你可以先解析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");