最近在用 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 框架的高阶应用