最近在用 java 處理一一些東西,發現 java 對對象進行序列化反序列化比起 python 來還是有些麻煩記錄一下。
找了好幾個庫最后選擇了 Jackson 感覺大家對它評價還不錯。
將目標從 Java 的 map object 轉換成 json 對象
Map<String, String> testDict = new HashMap<>(); ObjectMapper M = new ObjectMapper(); String json = ""; JsonNode deJson = null; testDict.put("name", "piperck"); testDict.put("age", "18"); testDict.put("company", "NIO"); // MAP COVERT TO JSON try { json = M.writeValueAsString(testDict); } catch (JsonProcessingException e) { System.out.println(e.getLocalizedMessage()); } System.out.println(json);
這里總是需要 new 一個 ObjectMapper() 對象,后續會需要使用這個對象來處理序列化和反序列化。
這里我們將最常見的 java 的 map 類型轉換成 json 。先定義一個 testDict 做字段,往里添加一些屬性,最后使用 M.writeValueAsString 將其轉換為 json 類型。
writeValue 系列方法將 java 對象序列化成 json,並將 json 存儲成不通的格式
這里我們用的
writeValueAsString 存成 String
同樣我們可以使用 readValue 系列方法將 json 對象讀取成 map 回來。
try { Map<String, String> map = M.readValue(json, Map.class); System.out.println(map); } catch(IOException e) { System.out.println(e.getLocalizedMessage()); }
Reference:
https://stackoverflow.com/questions/29340383/convert-map-to-json-using-jackson Convert Map to JSON using Jackson
https://www.mkyong.com/java/how-to-convert-java-map-to-from-json-jackson/ Jackson – Convert JSON string to Map
https://stackoverflow.com/questions/1149703/how-can-i-convert-a-stack-trace-to-a-string How can I convert a stack trace to a string?
https://www.ibm.com/developerworks/cn/java/jackson-advanced-application/index.html Jackson 框架的高階應用