Используя простой файл Json, например:
{"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 (см. выше), которая была введена изначально. Что происходит не так?
;
вместо.
. - person Hot Licks   schedule 28.09.2014