![](/img/trans.png)
[英]Jackson ObjectMapper: How to omit (ignore) fields of certain type from serialization?
[英]How to ignore certain fields with Jackson's ObjectMapper.readerForUpdating
我正在使用Jackson 2.7.0
在尝试使用一些新值更新现有对象时,我试图忽略encodingType
:
ObjectMapper om = new ObjectMapper();
om.readerForUpdating(message).readValue(messageSubset);
message
包含encodingType
的值。
messageSubset
(JSON字符串)不包含encodingType
的条目(无键值)。
我尝试过的:
om.setSerializationInclusion(Include.NON_EMPTY);
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonIgnoreProperties(value = { "encodingType" })
@JsonInclude(Include.NON_EMPTY)
@JsonInclude(Include.NON_NULL)
@JsonInclude(Include.NON_EMPTY)
@JsonInclude(Include.NON_NULL)
@JsonIgnore
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
以上都不是工作! 有帮助吗?
我想这与readerForUpdating和/或其中一个正在更新的事实有关。
我通过这样配置ObjectMapper来解决了这个问题(虽然不确定是否全部需要这些):
om.setSerializationInclusion(JsonInclude.Include.NON_EMPTY);
om.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
om.configure(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES, false);
并在Message类中获取所需的属性:
@JsonIgnore
上的@JsonIgnore
(在解析为Java对象时将其排除在外)
@JsonProperty
上的@JsonProperty
(在解析为JSON对象时包括它)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.