簡體   English   中英

Java:遍歷JSON字符串(無法轉換為JsonArray(gson)

[英]Java: Loop through JSON string (cant convert to JsonArray (gson)

我通過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數組,我想念什么?

您的JsonArray在引號之間:它被評估為String

{"users":[{\"user_id\": \"100011\", \"name\": \"Tim Clark\"}, {\"user_id\": 
\"100083\", \"name\": \"Timmy Kent\"}]}

應該可以工作(數組中的引號也不需要像“用戶”一樣轉義)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM