我阅读了杰克逊的注释文档,但我仍然找不到如何从注释中调用自定义序列化程序来序列化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 原始值序列化 Blockquote
我使用了正确的注释吗?我怎样才能从而Serializer
不是 toString() 返回值?