【发布时间】:2014-08-16 05:50:14
【问题描述】:
我将 JSON 作为字符串,将 JSONPath 作为字符串。我想用 JSON 路径查询 JSON,得到结果 JSON 作为字符串。
我收集到 Jayway's json-path is the standard。然而,online API 与actual library you get from Maven 没有太大的关系。 GrepCode's version 大致匹配。
看来我应该可以做到:
String originalJson; //these are initialized to actual data
String jsonPath;
String queriedJson = JsonPath.<String>read(originalJson, jsonPath);
问题在于 read 根据 JSONPath 实际找到的内容返回它认为最合适的任何内容(例如 List<Object>、String、double 等),因此我的代码肯定会抛出异常查询。假设有某种方法可以查询 JSON 并取回 JSON,这似乎是很合理的。有什么建议吗?
【问题讨论】:
-
我不知道 JSONPath,但我怀疑您链接为“在线 API”的内容是 Jayway 库的官方 API。反正看起来像JavaDoc,不如直接下载最新版本的JavaDoc直接阅读当前的JavaDoc?
-
我有,大致匹配GrepCode版本。 (我试图让人们更容易查看 API,而无需在任何地方下载库)总体而言,该库的文档很差,但我正在尝试做的事情似乎很基础,以至于我认为它必须有可能。
-
从当前的 GrepCode 版本看来,应用的过滤器解析 JSON 并返回适当的内容。如果您想要返回 JSON,也许您可以提供自己的过滤器,以某种方式使用配置,或者可能只是获取结果并使用 JSONPath 配置使用的相同 JsonProvider 将其转换回 JSON,即类似于
String json = provider.toJson(jsonPath.read(...))