@JsonSerialize和@JsonDeserialize

在springboot将一个对象转换成json或json解析为对象时,如果需要对某些字段指定序列化和可以使用@JsonSerialize和@JsonDeserialize注解指定自定义的序列化和反序列号器。

自定义序列化器,用于springboot将java对象解析为json时使用

public class DateTimeSerializer extends JsonSerializer<LocalDateTime> {      @Override     public void serialize(LocalDateTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException {         if (value != null) {             DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd/HH:mm:ss");             gen.writeString(value.format(dateTimeFormatter));         } else {             gen.writeNull();         }     } } 

自定义反序列化器,用于springboot将json解析到javabean对象使用

public class DateTimeDeserializer extends JsonDeserializer<LocalDateTime> {      @Override     public LocalDateTime deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException {         String text = p.getText();         DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd-HH:mm:ss");         return LocalDateTime.parse(text, dateTimeFormatter);     } } 

在对象中使用

@Data public class Person {     private String name;     @JsonSerialize(using = DateTimeSerializer.class)     @JsonDeserialize(using = DateTimeDeserializer.class)     private LocalDateTime birthDate; }