Использованием простого Json файл, например:Использования Gson с путем
{"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}}
Я хочу, чтобы иметь возможность получить JsonArray
имя menuitem
используя путь:
String path = "menu.popup.menuitem"
Я пытался сделать это с помощью :
public static JsonElement fromString(String json, String path) throws JsonSyntaxException {
JsonObject obj = GsonBuilder.create().fromJson(json, JsonObject.class);
String[] seg = path.split(".");
for (String element : seg) {
if (obj != null) {
obj = obj.get(element).getAsJsonObject();
} else {
return null;
}
}
return obj
}
с:
JsonElement jsonElement = fromString(json, path);
Но когда я попробую isJsonArray()
, возвращаемое значение - false
. При выполнении дополнительной проверки работоспособности с использованием Gson.toJson(jsonElement)
выход представляет собой полную строку json String (выше), которая была введена изначально. Что случилось?
возможно дубликат [струнной расколе Java с "" (точка)] (http://stackoverflow.com/questions/14833008/java-string-split-with-dot) – Devrim
Используйте, например, ';' вместо '.'. –