在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; }