Tôi biết đó là một câu hỏi cũ nhưng tôi trả lời vì tôi đã có cùng một vấn đề ngày hôm nay và tôi mất 4 giờ làm việc để tìm giải pháp. Vấn đề ở đây là mùa xuân sử dụng jackson để serialize và deserialize JSON. @DateTimeFormat
chú thích sẽ không thực hiện công việc, bạn phải thông báo cho Jackson cách sắp xếp ngày tháng.Bạn có hai giải pháp: một trong những đầu tiên là đơn giản hơn và là sử dụng @JsonFormat
chú thích trong phương thức getter:
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="dd/MM/yyyy")
public Date getDob(){
return dob;
}
Giải pháp thứ hai là để tạo ra một serializer tùy chỉnh cho trường ngày như thế này:
public class JsonDateSerializer extends JsonSerializer<Date>{
private static final SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
@Override
public void serialize(Date date, JsonGenerator gen, SerializerProvider provider)
throws IOException, JsonProcessingException {
String formattedDate = dateFormat.format(date);
gen.writeString(formattedDate);
}
}
và sau đó sử dụng các chú thích trong method get:
@JsonSerialize(using=JsonDateSerializer.class)
public Date getDob(){
return dob;
}
liên kết này giải thích làm thế nào để làm serializer
https://dzone.com/articles/how-serialize-javautildate
tôi phải đối mặt với một vấn đề khác, tôi đã nhập khẩu trong lớp JsonDateSerializer tôi các lớp từ org.codehaus.jackson
gói, nhưng mùa xuân gived tôi lỗi này:
java.io.FileNotFoundException: class path resource [org/codehaus/jackson/map/JsonSerializer.class] cannot be opened because it does not exist
Vì vậy, tôi đã thay đổi tất cả các hàng nhập khẩu để gói
com.fasterxml.jackson
và tất cả đều hoạt động tốt. Tôi hy vọng nó có thể giúp ai đó.
Làm thế nào để bạn "in" đầu ra đó? Tôi hỏi vì có vẻ như chú thích không được tính đến. – Ralph
Tôi sẽ sử dụng API [Joda-time] (http://joda-time.sourceforge.net/) (vì nó luôn là sở thích của tôi) và chắc chắn không phải là API thời gian mặc định của Java SE. Nếu bạn đang sử dụng Spring 3.2, thì bạn có thể đăng ký trình chỉnh sửa thuộc tính tùy chỉnh trực tiếp với ['@ ControllerAdvice'] (http://static.springsource.org/spring/docs/3.2.x/javadoc-api/org/springframework /web/bind/annotation/ControllerAdvice.html) để đáp ứng mọi thứ bạn cần. – Lion