我在Jackson上有以下代码:
public class Header implements Serializable {
@JsonProperty("numeroUnico")
private Integer numeroCliente;
@JsonProperty("oficina")
private Integer oficina;
@JsonProperty("fecha")
@JsonSerialize(using = CustomDateSerializer.class)
private Date fechaInscripcion;
}
这是我的课程“ CustomDateSerializer.class”
public class CustomDateSerializer extends StdSerializer<Date> {
private SimpleDateFormat formatter
= new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
public CustomDateSerializer() {
this(null);
}
public CustomDateSerializer(Class t) {
super(t);
}
@Override
public void serialize (Date value, JsonGenerator gen, SerializerProvider arg2)
throws IOException, JsonProcessingException {
gen.writeString(formatter.format(value));
}
}
他们要求我将所有Jackson的实现迁移到Gson。 考虑到Jackson @JsonProperty中的表示法在Gson中的等效项是@SerializedName。 但是对于杰克逊(Jackson)中的注释:
@JsonSerialize (using = CustomDateSerializer.class)
对Gson来说等效吗?如果不是,则应该是DTO中Date类型的属性的实现。
答案 0 :(得分:0)
我认为最接近且可能唯一的匹配是@TypeAdapter
。但是,您需要编码JsonSerializer<T>
或TypeAdapter<T>
以便与该注释一起使用。
例如,如何制作类似<ul>
<li>some content</li>
<li>some content</li>
<li>some content</li>
<li>some content</li>
<li>some content</li>
<li>some content</li>
etc.
</ul>
的东西,请参见this question的可接受答案。
或者也许您可以将现有的CustomDateSerializer
与Gson CustomDateSerializer
一起包装,并在注释中使用它。