在Java中使用Gson建立JSON字串。
使用前要先加入Gson的函式庫。Gson的maven dependency如下。
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.2</version>
</dependency>
使用Gson組成一個json物件後再轉成json字串,然後轉成List
及Map
組成的物件。
JsonObject jsonObj1 = new JsonObject();
jsonObj1.addProperty("name", "matt");
JsonObject jsonObj2 = new JsonObject();
jsonObj2.addProperty("name", "peter");
JsonArray jsonArray1 = new JsonArray();
jsonArray1.add(jsonObj1);
jsonArray1.add(jsonObj2);
JsonObject jsonObj3 = new JsonObject();
jsonObj3.addProperty("name", "john");
JsonObject jsonObj4 = new JsonObject();
jsonObj4.addProperty("name", "lisa");
JsonArray jsonArray2 = new JsonArray();
jsonArray2.add(jsonObj3);
jsonArray2.add(jsonObj4);
JsonObject jsonObj = new JsonObject();
jsonObj.add("array1", jsonArray1);
jsonObj.add("array2", jsonArray2);
String jsonString = jsonObj.toString();
System.out.println(jsonString);
System.out.println("----------------------------");
// 轉換JSON字串為List Map物件
Type type = new TypeToken<Map<String, List<Map<String, String>>>>() {}.getType();
Map<String, List<Map<String, String>>> map1 = new Gson().fromJson(jsonString, type);
map1.forEach((k, v) -> {
System.out.println(k);
v.forEach((map2) -> {
map2.forEach((m, n) -> {
System.out.println(m + ":" + n);
});
});
});
// 轉換List Map物件為JSON字串
System.out.println("----------------------------");
Gson gsonBuilder = new GsonBuilder().create();
String jsonString2 = gsonBuilder.toJson(map1);
System.out.println(jsonString2);
印出結果如下。
{"array1":[{"name":"matt"},{"name":"peter"}],"array2":[{"name":"john"},{"name":"lisa"}]}
----------------------------
array1
name:matt
name:peter
array2
name:john
name:lisa
----------------------------
{"array1":[{"name":"matt"},{"name":"peter"}],"array2":[{"name":"john"},{"name":"lisa"}]}
參考:
沒有留言:
張貼留言