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

12-31 16:24