我使用Jackson 2.7.0
在使用一些新值更新现有对象时,我试图忽略encodingType
:
ObjectMapper om = new ObjectMapper();
om.readerForUpdating(message).readValue(messageSubset);
message
包含encodingType
的值
messageSubset
(JSON-string)不包含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有关,和/或其中一个正在更新。
答案 0 :(得分:0)
我通过像这样配置ObjectMapper解决了这个问题(不确定这些是否都需要):
om.setSerializationInclusion(JsonInclude.Include.NON_EMPTY);
om.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
om.configure(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES, false);
在Message类中找到所需的属性:
setter上的 @JsonIgnore
(解析为Java对象时将其排除)
getter上的@JsonProperty
(解析为JSON对象时包含它)