Java Jackson:重写JSON属性

Java Jackson:重写JSON属性,java,json,jackson,Java,Json,Jackson,试图重写JSON属性以长格式返回日期。但它似乎不起作用 @JsonIgnore @JsonProperty("dateTime") public long getDateTimeInLong() { return getDateTime().getTime(); //belongs to super class. It is an AspectJ implementation. } 如果删除@JsonIgnore注释,则属性dateTime:exception的getter定义会发生冲

试图重写JSON属性以长格式返回日期。但它似乎不起作用

@JsonIgnore
@JsonProperty("dateTime")
public long getDateTimeInLong() {
    return getDateTime().getTime(); //belongs to super class. It is an AspectJ implementation.
}

如果删除@JsonIgnore注释,则属性dateTime:exception的getter定义会发生冲突。

我会避免将注释用于数据表示目的,因为它可能会污染代码,设计将变得“以表示为中心”。除非你用这个对象作为DTO,但这是另一个反模式。相反,我要将表示问题分开,因为已经有了一个方法。

错误消息描述了它自己。发生这种情况是因为getter定义冲突


您可以通过解决getter冲突来修复它。我想您已经有了带有@JsonProperty注释的getDateTime方法。您可以删除注释或添加@JsonIgnore。这两种方法都应该奏效。如果该方法是在超类中定义的,则可以重写该方法并重新定义其注释。

getDateTime方法上是否有JsonProperty注释?@AlexeyGavrilov我之前错了。刚刚检查了超级班。不,上面没有@JsonProperty注释。第二部分没有告诉您。如何忽略现有的getDateTime?我需要添加另一个getDateTime和@JsonIgnore吗?