亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用Gson將JSON數組解析為java.util.List

使用Gson將JSON數組解析為java.util.List

慕娘9325324 2019-10-25 14:55:04
我有一個JsonObject名為"mapping"包含以下內容:{    "client": "127.0.0.1",    "servers": [        "8.8.8.8",        "8.8.4.4",        "156.154.70.1",        "156.154.71.1"    ]}我知道我可以用以下方法獲得陣列"servers":mapping.get("servers").getAsJsonArray()現在我想將其解析JsonArray為java.util.List...最簡單的方法是什么?
查看完整描述

3 回答

?
侃侃無極

TA貢獻2051條經驗 獲得超10個贊

下面的代碼正在使用com.google.gson.JsonArray。我已經打印了列表中的元素數量以及列表中的元素


import java.util.ArrayList;


import com.google.gson.Gson;

import com.google.gson.JsonArray;

import com.google.gson.JsonObject;

import com.google.gson.JsonParser;



public class Test {


    static String str = "{ "+ 

            "\"client\":\"127.0.0.1\"," + 

            "\"servers\":[" + 

            "    \"8.8.8.8\"," + 

            "    \"8.8.4.4\"," + 

            "    \"156.154.70.1\"," + 

            "    \"156.154.71.1\" " + 

            "    ]" + 

            "}";


    public static void main(String[] args) {

        // TODO Auto-generated method stub

        try {


            JsonParser jsonParser = new JsonParser();

            JsonObject jo = (JsonObject)jsonParser.parse(str);

            JsonArray jsonArr = jo.getAsJsonArray("servers");

            //jsonArr.

            Gson googleJson = new Gson();

            ArrayList jsonObjList = googleJson.fromJson(jsonArr, ArrayList.class);

            System.out.println("List size is : "+jsonObjList.size());

                    System.out.println("List Elements are  : "+jsonObjList.toString());



        } catch (Exception e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

    }


}

輸出值


List size is : 4


List Elements are  : [8.8.8.8, 8.8.4.4, 156.154.70.1, 156.154.71.1]


查看完整回答
反對 回復 2019-10-25
?
白衣非少年

TA貢獻1155條經驗 獲得超0個贊

我在這里從Gson的官方網站閱讀解決方案


并為您提供以下代碼:


    String json = "{"client":"127.0.0.1","servers":["8.8.8.8","8.8.4.4","156.154.70.1","156.154.71.1"]}";


    JsonObject jsonObject = new Gson().fromJson(json, JsonObject.class);

    JsonArray jsonArray = jsonObject.getAsJsonArray("servers");


    String[] arrName = new Gson().fromJson(jsonArray, String[].class);


    List<String> lstName = new ArrayList<>();

    lstName = Arrays.asList(arrName);


    for (String str : lstName) {

        System.out.println(str);

    }    

結果顯示在監視器上:


8.8.8.8

8.8.4.4

156.154.70.1

156.154.71.1


查看完整回答
反對 回復 2019-10-25
  • 3 回答
  • 0 關注
  • 1401 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號