java - 在java中查询一个JSONObject

标签 java json jackson gson

我想知道某处是否存在能够查询 JSONObject 的 java 库。更深入地,我正在寻找类似的东西:

String json = "{ data: { data2 : { value : 'hello'}}}";

...
// Somehow we managed to convert json to jsonObject
...

String result = jsonObject.getAsString("data.data2.value");

System.out.println(result);

我希望得到“hello”作为输出。

到目前为止,我发现最快的方法是使用 Gson:

jsonObject.getAsJsonObject("data").getAsJsonObject().get("data2").getAsJsonObject("value").getAsString();

实际上写和读并不容易。有更快的东西吗?

最佳答案

我刚刚意外发现了一个非常有趣的项目:JSON Path

JsonPath is to JSON what XPATH is to XML, a simple way to extract parts of a given document.

有了这个库,您可以更轻松地完成您的要求,然后是我之前的建议:

String hello = JsonPath.read(json, "$.data.data2.value");

System.out.println(hello); //prints hello

希望这也能有所帮助。

关于java - 在java中查询一个JSONObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15429775/

相关文章:

java - 将项目添加到 JList 删除所有其他项目

java - 使用扫描仪解析文本文件时,为什么我在每个预期字符之间得到空字符?

java - Spark 2.0 中的字符串、数据集对

java - 如何制作与图像形状完全相同的自定义形状 View

java - JSON Stringify 返回 null,但 document.write 正确打印

javascript - 解析 JSON 时出现此语法错误的原因是什么?

c# - 将 JSON 反序列化为字符串

java - 在运行时更新 Jersey Jackson 的 Mapper 配置

java - 带有空白字符串的Jackson com.fasterxml.jackson.databind.exc.MismatchedInputException

java - 如何在fasterxml中实现自定义序列化功能