在Java項目中,我們經常需要將Map類型的數據轉換成JSON格式,以方便網絡傳輸或存儲。
如果使用GSON庫,將Map轉換成JSON格式非常簡單:
import com.google.gson.Gson; ... Map<String,Object> map = new HashMap<>(); map.put("name", "Tom"); map.put("age", 18); Gson gson = new Gson(); String json = gson.toJson(map); System.out.println(json);
以上代碼將會輸出如下格式的JSON字符串:
{"name":"Tom","age":18}
如果需要格式化輸出JSON字符串,可以使用GSON提供的方法:
String json = gson.toJson(map, new TypeToken<Map<String,Object>>(){}.getType()); String prettyJson = new GsonBuilder().setPrettyPrinting().create().toJson(JsonParser.parseString(json)); System.out.println(prettyJson);
以上代碼將會輸出如下格式的JSON字符串:
{ "name": "Tom", "age": 18 }
除了GSON庫外,也可以使用Jackson庫將Map轉換成JSON格式,代碼如下:
import com.fasterxml.jackson.databind.ObjectMapper; ... Map<String,Object> map = new HashMap<>(); map.put("name", "Tom"); map.put("age", 18); ObjectMapper objectMapper = new ObjectMapper(); String json = objectMapper.writeValueAsString(map); System.out.println(json);
以上代碼將會輸出如下格式的JSON字符串:
{"name":"Tom","age":18}
如果需要格式化輸出JSON字符串,可以在ObjectMapper對象上設置配置:
ObjectMapper objectMapper = new ObjectMapper(); objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(map); String prettyJson = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(JsonParser.parseString(json)); System.out.println(prettyJson);
以上代碼將會輸出如下格式的JSON字符串:
{ "name" : "Tom", "age" : 18 }