Using a simple Json file e.g:
{"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}}
I want to be able to get the JsonArray
named menuitem
using a path:
String path = "menu.popup.menuitem"
I tried to do this using:
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
}
with:
JsonElement jsonElement = fromString(json, path);
But when I try isJsonArray()
the return value is false
. When doing the extra sanity check using Gson.toJson(jsonElement)
the output is the full json String (above) that was inputted originally.
What's going wrong?