1、序列化:将对象转成二进制字节或者json等。
2、反序列化:将二进制或者json转成java对象。
-- spring默认使用jackson,可以这样反序列化复杂的集合对象
Map<String, RuleCacheDTO> ruleMap = JsonUtil.readJson(parseObject.getString("content"), Map.class, String.class, RuleCacheDTO.class);
/**
* 获取泛型的Collection Type
* @param jsonStr json字符串
* @param collectionClass 泛型的Collection
* @param elementClasses 元素类型
*/
public static <T> T readJson(String jsonStr, Class<?> collectionClass, Class<?>... elementClasses) {
ObjectMapper mapper = new ObjectMapper();
JavaType javaType = mapper.getTypeFactory().constructParametricType(collectionClass, elementClasses);
try{
return mapper.readValue(jsonStr, javaType);
}catch (JsonParseException e){
}
return null;
}
-- fastjson阿里开源框架
BigDecimal 类型反序列化时要注意,
new BigDecimal(19999999.00001d);这种会出问题
new BigDecimal("19999999.00001");这个正常
本文详细介绍了Java中的序列化与反序列化过程,包括实现Serializable接口的重要性及serialVersionUID的作用。此外还展示了如何使用Jackson和Fastjson库进行复杂对象的序列化与反序列化操作,并特别注意BigDecimal类型的处理。
315

被折叠的 条评论
为什么被折叠?



