android 杰克逊 @JsonIgnore 属性
Posted
技术标签:
【中文标题】android 杰克逊 @JsonIgnore 属性【英文标题】:android Jackson @JsonIgnore property 【发布时间】:2017-09-03 13:24:41 【问题描述】:在我的 API 响应中,我有两个字段:event_date
和 event_datetime
。 event_date
返回 ISO 日期 格式,在我的 android 类中,我将此变量设置为 String 类型。我想忽略 Jackson 中的这个属性,因为它会引发类型不匹配的错误。请注意,我只想在响应中忽略此字段。我想将此字段用作请求参数。
我尝试了@JsonIgnore 注释,但它不适合我。有没有其他方法可以忽略 Jackson 中的这个变量?
@JsonIgnore
private String eventDate;
private String eventDateTime;
@JsonIgnore
public String getEventDate()
return eventDate;
@JsonProperty("event_date")
public void setEventDate(String eventDate)
this.eventDate = eventDate;
@JsonProperty("event_datetime")
public String getEventDateTime()
return eventDateTime;
public void setEventDateTime(String eventDateTime)
this.eventDateTime = eventDateTime;
【问题讨论】:
【参考方案1】:删除@JsonProperty("event_date")
。我认为这是造成问题的原因。
【讨论】:
我必须使用它,因为我的属性名称是 event_date 而不是 eventDate 但是你想忽略它。你是怎么用它的? 我只想在回应中忽略它。我将此字段用于请求参数。无论如何,我得到了解决方案。谢谢你的回答:)【参考方案2】:这是因为你使用了来自 org.fasterxml.jackson 的 @JsonIgnore
替换你的导入:
import org.fasterxml.jackson.annotate.JsonIgnore;
到
import org.codehaus.jackson.annotate.JsonIgnore;
【讨论】:
我使用过 com.fasterxml.jackson.core:jackson-annotations:2.8.3 库。所以我不能导入你指定的类 如果你使用 jersey,org.codehaus.jackson 默认会在你的项目中以上是关于android 杰克逊 @JsonIgnore 属性的主要内容,如果未能解决你的问题,请参考以下文章
强制杰克逊在没有 JsonIgnore 的情况下忽略 isEmpty
杰克逊:我怎么能忽略getter但解析setter? [复制]