如何搜索Json文件中的值
问题描述:
我在下面有这个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"
}
}
}
}
}
答
怎么样使用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实例 - 非常感谢 –
答
你可以尝试JSONPath非凡的Java库。
表达式非常简单,就像JQuery数组访问。
String expression = "$.glossary.GlossDiv.GlossList.GlossEntry.ID"
String result = JsonPath.read(json_input, expression);
有没有试试?......... – gifpif
你为什么要用Gson? –