如何忽略 Jackson 的某些字段 ObjectMapper.readerForUpdating

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.

的条目(无键值)

我尝试过的:

不是以上作品!有什么帮助吗?
我想这与 readerForUpdating and/or 其中一个正在更新的事实有关。

我通过像这样配置 ObjectMapper 解决了这个问题(虽然不确定是否需要这些):

om.setSerializationInclusion(JsonInclude.Include.NON_EMPTY); om.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); om.configure(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES, false);

并在消息 class 上获取所需的属性:

@JsonIgnore 在 setter 上(解析到 Java 对象时将其排除)
@JsonProperty 在 getter 上(解析到 JSON 对象时包括它)