Java 8 LocalDate Jackson format

前端 未结 14 1177
傲寒
傲寒 2020-11-22 12:59

For java.util.Date when I do

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = \"dd/MM/yyyy\")  
  private Date dateOfBirth;
<         


        
14条回答
  •  情深已故
    2020-11-22 13:35

    @JsonSerialize and @JsonDeserialize worked fine for me. They eliminate the need to import the additional jsr310 module:

    @JsonDeserialize(using = LocalDateDeserializer.class)  
    @JsonSerialize(using = LocalDateSerializer.class)  
    private LocalDate dateOfBirth;
    

    Deserializer:

    public class LocalDateDeserializer extends StdDeserializer {
    
        private static final long serialVersionUID = 1L;
    
        protected LocalDateDeserializer() {
            super(LocalDate.class);
        }
    
    
        @Override
        public LocalDate deserialize(JsonParser jp, DeserializationContext ctxt)
                throws IOException, JsonProcessingException {
            return LocalDate.parse(jp.readValueAs(String.class));
        }
    
    }
    

    Serializer:

    public class LocalDateSerializer extends StdSerializer {
    
        private static final long serialVersionUID = 1L;
    
        public LocalDateSerializer(){
            super(LocalDate.class);
        }
    
        @Override
        public void serialize(LocalDate value, JsonGenerator gen, SerializerProvider sp) throws IOException, JsonProcessingException {
            gen.writeString(value.format(DateTimeFormatter.ISO_LOCAL_DATE));
        }
    }
    

提交回复
热议问题