2016-08-08 21 views
0

Ich habe eine sehr einfache Bean:@JsonFormat nicht in verschachtelte Objekt arbeiten

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

Und ich es in einem anderen Bohne wickeln, die ich verwenden, um Objekte für schöne json mit Nachrichten und Sachen Formatierung zu wickeln:

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

In meinem Controller, setze ich die Status-Bean in der Antwort Bean mit einem SetData();

Spring serialisiert dies im JSON-Format aus, die Ausgabe für das Datum wird jedoch nicht formatiert. Ich bekomme das Standardformat "JJJJ-MM-TT".

Mache ich etwas falsch? Wie bekomme ich das zum Laufen?

+0

Verwenden Sie java.util.Date? –

+0

Ja, ich bin. Sollte ich etwas anderes benutzen? – mmaceachran

+0

nein. Ich fragte, weil in vielen Artikeln darauf hingewiesen wurde, dass @JsonFormat nicht mit java.sql.Date funktioniert. Also entschied ich, dies zu überprüfen) –

Antwort

0

Ich habe es nie versucht, aber die Lösung könnte diese Anmerkung in Ihrem ResponseBean hinzuzufügen sein:

@JsonSerialize(as = StatusBean.class) 
private Object data; 

leider Ihr Objekt wird

1

ein StatusBean werde ich das gleiche Problem hatte und einfach feste Zugabe @JsonSerialize(as = Date.class) vor

-1

Mit @DateTimeFormat(pattern="dd/MM/yyyy") von org.springframework.format.annotation.DateTimeFormat arbeitete für mich.

Verwandte Themen