私はそれが古い問題だと知っていますが、私は今日同じ問題を抱えていて、解決策を見つけるのに4時間の仕事を失ったので答えます。ここでの問題は、JSONを直列化および逆シリアル化するためにspringをjacksonで使用することです。 @DateTimeFormat
注釈は仕事をしません、あなたはジャクソンに日付をシリアル化する方法を教えなければなりません。次の2つのソリューションを持っている:最初のものはsimplierで、getterメソッドで@JsonFormat
アノテーションを使用することです:
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="dd/MM/yyyy")
public Date getDob(){
return dob;
}
第二の溶液は、このような日付フィールドのためのカスタム・シリアライザを作成することです:
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);
}
}
、その後は、getメソッドにアノテーションを使用:
@JsonSerialize(using=JsonDateSerializer.class)
public Date getDob(){
return dob;
}
このリンクは、シリアライザを行う方法について説明し
https://dzone.com/articles/how-serialize-javautildate
私は私がorg.codehaus.jackson
パッケージから私のJsonDateSerializerクラスのクラスをインポートしましたが、春は私にこのエラーをgived、別の問題に直面した:
java.io.FileNotFoundException: class path resource [org/codehaus/jackson/map/JsonSerializer.class] cannot be opened because it does not exist
だから私はパッケージにすべての輸入を変更
com.fasterxml.jackson
すべて正常です。 私はそれが誰かを助けることを願っています。
どのように出力しますか?アノテーションが考慮されていないように見えるので、私は尋ねます。 – Ralph
私は[Joda-time](http://joda-time.sourceforge.net/)API(いつも私の好みである)を使用し、Java SEのデフォルト日付時刻APIは使用しません。 Spring 3.2を使用している場合、カスタムプロパティエディタを['@ ControllerAdvice'](http://static.springsource.org/spring/docs/3.2.x/javadoc-api/org/springframework)で直接登録することができます/web/bind/annotation/ControllerAdvice.html)を使用して、必要なものを満たしてください。 – Lion