Jackson
小于 1 分钟languagejava
序列化与反序列化
通过下面的方法可以序列化和反序列化一个对象
@Test
void testJSON2Object() throws IOException {
ObjectMapper mapper = new ObjectMapper();
PlayerStar4 player = new PlayerStar4();
player.setName("curry");//我并不知道库里的生日,这里是编造的
player.setBirthDate(LocalDateTime.of(1986,4,5,12,50));
//将player对象以JSON格式进行序列化为String对象
String jsonString = mapper.writeValueAsString(player);
System.out.println(jsonString);
//将JSON字符串反序列化为java对象
PlayerStar4 curry = mapper.readValue(jsonString, PlayerStar4.class);
System.out.println(curry);
}
但是日期类型 LocalDateTime 会出现下面的问题
即序列化可以正常执行,但是反序列化时无法转换为 LocalDateTime 类型的数据
在实体类属性上显式的指定使用序列化和反序列化的自定义类
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
private LocalDateTime birthDate;
