如何忽略 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
.
的条目(无键值)
我尝试过的:
- 对于对象映射器:
om.setSerializationInclusion(Include.NON_EMPTY);
- 关于消息class:
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonIgnoreProperties(value = { "encodingType" })
@JsonInclude(Include.NON_EMPTY)
@JsonInclude(Include.NON_NULL)
- 场上和场上 getters/setters:
@JsonInclude(Include.NON_EMPTY)
@JsonInclude(Include.NON_NULL)
@JsonIgnore
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
不是以上作品!有什么帮助吗?
我想这与 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 对象时包括它)
我正在使用 Jackson 2.7.0
我试图在使用一些新值更新现有对象时忽略 encodingType
:
ObjectMapper om = new ObjectMapper();
om.readerForUpdating(message).readValue(messageSubset);
message
包含 encodingType
的值。
messageSubset
(JSON-字符串)不包含 encodingType
.
我尝试过的:
- 对于对象映射器:
om.setSerializationInclusion(Include.NON_EMPTY);
- 关于消息class:
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonIgnoreProperties(value = { "encodingType" })
@JsonInclude(Include.NON_EMPTY)
@JsonInclude(Include.NON_NULL)
- 场上和场上 getters/setters:
@JsonInclude(Include.NON_EMPTY)
@JsonInclude(Include.NON_NULL)
@JsonIgnore
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
不是以上作品!有什么帮助吗?
我想这与 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 对象时包括它)