我通过api获得了一个json对象:
Gson gson = new Gson();
JsonObject users = gson.fromJson(reader, JsonObject.class)
这是我的json对象:
{"users":"[{\"user_id\": \"100011\", \"name\": \"Tim Clark\"}, {\"user_id\": \"100083\", \"name\": \"Timmy Kent\"}]"}
我尝试遍历所有用户
JsonArray usersArray = users.getAsJsonArray();
for (JsonElement ua : usersArray) {
JsonObject ua = ua.getAsJsonObject();
String name = ua.get("name").getAsString();
System.out.println(name);
}
也试过这个
JsonArray usersArray = users.get("users").getAsJsonArray();
for (JsonElement ua : usersArray) {
JsonObject ua = ua.getAsJsonObject();
String name = ua.get("name").getAsString();
System.out.println(name);
}
但我总是得到像这样的例外
java.lang.IllegalStateException: Not a JSON Array: "[{\"user_id\": \"100011\", \" ....
在我看来,它是一个有效的json数组,我想念什么?
答案 0 :(得分:0)
你的JsonArray在引号之间:它被评估为一个字符串
{"users":[{\"user_id\": \"100011\", \"name\": \"Tim Clark\"}, {\"user_id\":
\"100083\", \"name\": \"Timmy Kent\"}]}
应该工作(数组中的引号也不需要被转义,比如“users”)