我继承了一些针对单个JSON文件执行大量JsonPath查询的代码。对于每个查询,它都会传递JSON文件和查询。然后,这将调用JsonPath.read(jsonFile,jpathQuery)。
有没有办法避免让它构建JSON所需的内部结构然后执行查询?有没有办法让它构建一次JSON的内部模型,然后对它执行多个查询?
谢谢 - 戴夫
答案 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");