Jackson对日期类型的序列化和反序列化


举例,对 LocalDateTime 类型日期的序列化:
public class LocalDateTimeSerializer extends JsonSerializer<LocalDateTime> {

    @Override
    public void serialize(LocalDateTime localDateTime, JsonGenerator jsonGenerator,
                          SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
        jsonGenerator.writeString(localDateTime.toString());
    }
}

对Date 类型日期的反序列化:

public class JsonDateDeserializer extends JsonDeserializer<Date> {

    @Override
    public Date deserialize(JsonParser jp, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
        SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd");
        String date = jp.getText();
        try {
            return format.parse(date);
        } catch (ParseException e) {
            throw new RuntimeException(e);
        }
    }
}
JavaBean中的属性配置注解
@JsonDeserialize(using = XXXDeserializer.class)
@JsonSerialize(using = XXXSerializer.class)
using 属性值为 需要解析的日期类型 对应的解析器或自定义解析器



阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页