【问题标题】:How to search for values inside Json file如何在 Json 文件中搜索值
【发布时间】:2017-09-27 08:47:52
【问题描述】:

我在下面有这个 json,我需要获取“ID”的值,即“SMGL”。 我正在使用 Gson 从文件中保存 json。我该如何搜索?

{
    "glossary": {
        "title": "example glossary",
        "GlossDiv": {
            "title": "S",
            "GlossList": {
                "GlossEntry": {
                    "ID": "SGML",
                    "SortAs": "SGML",
                    "GlossTerm": "Standard Generalized Markup Language",
                    "Acronym": "SGML",
                    "Abbrev": "ISO 8879:1986",
                    "GlossDef": {
                        "para": "A meta-markup language, used to create markup languages such as DocBook.",
                        "GlossSeeAlso": ["GML", "XML"]
                    },
                    "GlossSee": "markup"
                }
            }
        }
    }
}

【问题讨论】:

  • 任何尝试?............
  • 你为什么使用 Gson ?

标签: java json gson


【解决方案1】:

ObjectMapper怎么样

final String json = "{\"yourjson\": \"here\", \"andHere\": ... }";
final ObjectNode node = new ObjectMapper().readValue(json, ObjectNode.class);

if (node.has("ID")) {
    System.out.println("ID: " + node.get("ID"));
} 

这是多种方式之一:

GSON 添加,

String json = "your json here" // you can also read from file etc
    Gson gson = new GsonBuilder().create();
    Map jsonMap = gson.fromJson(json, Map.class);
    System.out.println(jsonMap.get("ID"));

探索更多。

谢谢

【讨论】:

  • 我使用了您提供的 Gson 示例 - 非常感谢
【解决方案2】:

您可以尝试JSONPath 一个非凡的 java 库。

表达式非常简单,就像 JQuery 数组访问一样。

String expression = "$.glossary.GlossDiv.GlossList.GlossEntry.ID"

String result = JsonPath.read(json_input, expression);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多