【发布时间】:2014-09-28 17:40:29
【问题描述】:
使用简单的 Json 文件,例如:
{"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}}
我希望能够使用路径获取名为 menuitem 的 JsonArray:
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 字符串(上图)。
怎么了?
【问题讨论】:
-
使用
;代替.。