簡體   English   中英

有沒有直接的方法來轉換地圖 <String, List<String> &gt;轉換為JSON字符串(使用javax.json庫)

[英]Is there a direct way to convert Map<String, List<String>> into a JSON String (using javax.json library)

假設我有以下地圖

Map<String, List<String>> map = new HashMap<>();

List<String> list = new ArrayList<>();
list.add("First in list");
list.add("Second in list");

map.put("First in map", list);

那么如何使用javax.json庫將其直接轉換為JSON字符串呢?

我只是嘗試以下

        Map<String, List<String>> map = new HashMap<>();

        List<String> list = new ArrayList<>();
        list.add("First in list");
        list.add("Second in list");

        List<String> list1 = new ArrayList<>();
        list1.add("First in secondlist");
        list1.add("Second in secondlist");

        map.put("First in map", list);
        map.put("Second in map", list1);

        final JsonArrayBuilder outerJsonArray = Json.createArrayBuilder();

        map.forEach((key, innerList) -> {

            JsonArrayBuilder innerJsonArray = Json.createArrayBuilder();
            innerList.forEach(item -> innerJsonArray.add(item));

            outerJsonArray.add(Json.createObjectBuilder().add(key, innerJsonArray));

        });

        JsonArray usersJson = outerJsonArray.build();
        System.out.println(usersJson.toString());

結果JSON數組是(缺少插入順序)

[
  {
    "Second in map": [
      "First in secondlist",
      "Second in secondlist"
    ]
  },
  {
    "First in map": [
      "First in list",
      "Second in list"
    ]
  }
]

暫無
暫無

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

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