Jackson の注釈ドキュメントを読みましたが、注釈からカスタム シリアライザーを呼び出してjava.sql.Date
オブジェクトをシリアル化する方法がまだ見つかりません。
class Test {
java.sql.Date mDate = null;
@JsonValue("serializeDate") //@JsonValue(DateAsTimestampSerializer.class)
public Date getCreationDate() {
return mDate;
}
public void String serializeDate(Date d) {
return String.valueOf(d.getTime());
}
class DateAsTimestampSerializer extends JsonSerializer<Date>
{
@Override
public void serialize(Date value, JsonGenerator jgen, SerializerProvider provider)
throws IOException, JsonProcessingException {
jgen.writeFieldName(String.valueOf(value.getTime()));
}
}
}
しかし、注釈は次のように述べている注釈ドキュメント@JsonValue
とは対照的に、ブール値のみを引数として受け入れるようです:
@JsonValue(method): 戻り値がオブジェクトのシリアル化として使用されるメソッドをマークするために使用されます。多くの場合、文字列を生成するメソッド (toString() など) をマークして、JSON プリミティブ値のシリアル化を生成するために使用されます。
正しい注釈を使用していますか? Serializer
toString()の代わりに値を返すにはどうすればよいですか?