@JsonFormat 不适用于嵌套对象

mma*_*ran 2 java spring json

我有一个非常简单的bean:

public class StatusBean {

 private String name;
 @JsonFormat(shape=JsonFormat.Shape.STRING, pattern="MM-dd-yyyy")
 private Date startDate;
 @JsonFormat(shape=JsonFormat.Shape.STRING, pattern="MM-dd-yyyy")
 private Date endDate;

 public String getName() {
    return name;
 }
 public void setName(String name) {
    this.name = name;
 }
 public Date getStartDate() {
    return startDate;
 }
 public void setStartDate(Date startDate) {
    this.startDate = startDate;
 }
 public Date getEndDate() {
    return endDate;
 }
 public void setEndDate(Date endDate) {
    this.endDate = endDate;
 }
}
Run Code Online (Sandbox Code Playgroud)

我将它包装在另一个 bean 中,我用它来包装带有消息和内容的漂亮 json 格式的对象:

public class ResponseBean {

private boolean success = false;
private String message;
private Object data;

public boolean isSuccess() {
    return success;
}
public void setSuccess(boolean success) {
    this.success = success;
}
public String getMessage() {
    return message;
}
public void setMessage(String message) {
    this.message = message;
}
public Object getData() {
    return data;
}
public void setData(Object data) {
    this.data = data;
}
}
Run Code Online (Sandbox Code Playgroud)

在我的控制器中,我使用 setData() 在响应 bean 中设置 Status bean;

Spring 以 JSON 格式将其序列化,但日期的输出未格式化。我得到标准的“yyyy-MM-DD”格式。

难道我做错了什么?我如何让这个工作?

小智 6

我遇到了同样的问题并@JsonSerialize(as = Date.class)在之前简单地添加了修复@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="MM-dd-yyyy")