簡體   English   中英

使用GSON解析json字符串列表

[英]Parse list of json string using GSON

我正在使用REST應用程序,並且從服務器獲得的響應是​​具有以下格式的Json字符串:

[{"car": "ford"}, {"car": "nissan"}, {"car": "bmw"}]

我想使用Gson通過該列表中的每個元素通過鍵檢索信息,但是由於它以字符串形式返回,因此我不確定該如何處理。

如果我只是得到以下答復:

String json = {"car:": "ford"};

然后,我可以按以下方式檢索汽車的價值:

  Map<String,Object> result = new Gson().fromJson(json, Map.class);
  System.out.println( result.get( "car" ) );

但是因為原始字符串是json的列表,所以比較困難。

幫助表示贊賞。 理想情況下仍使用Gson

謝謝

這將幫助您:

public static void main(String[] args) {
    JsonParser jsonParser = new JsonParser();
    String log = "[{\"car\": \"ford\"}, {\"car\": \"nissan\"}, {\"car\": \"bmw\"}]";
    JsonArray jsonObject = jsonParser.parse(log).getAsJsonArray();
    for (JsonElement jsonElement : jsonObject)
        System.out.println(jsonElement.getAsJsonObject().get("car").getAsString());

}

您擁有的json字符串實際上是一個數組。 請嘗試以下方法:

  String json = "[{\"car\": \"ford\"}, {\"car\": \"nissan\"}, {\"car\": \"bmw\"}]";
  List<Map<String,Object>> result = new Gson().fromJson(json, List.class);
  result.forEach(l ->{
    l.forEach((k, v)->{
      System.out.println(k + ": " + v);
    });
  });

暫無
暫無

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

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