2017-09-27 81 views
-2

我在下面有这个json,我需要得到“ID”的值是“SMGL”。 我使用Gson从文件中保存json。我如何搜索这个?如何搜索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" 
       } 
      } 
     } 
    } 
} 
+0

有没有试试?......... – gifpif

+0

你为什么要用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")); 

探索更多。

感谢

+1

我用你提供的Gson实例 - 非常感谢 –

1

你可以尝试JSONPath非凡的Java库。

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

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

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