繁体   English   中英

如何使用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的条目(无键值)。

我尝试过的:

  • 对于ObjectMapper:
    • 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM