gpt4 book ai didi

java - 如何使用 Jackson 的 ObjectMapper.readerForUpdating 忽略某些字段

转载 作者:行者123 更新时间:2023-11-30 10:48:35 29 4
gpt4 key购买 nike

我正在使用 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)
  • 在场上和 getter/setter 上:
    • @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 在 setter 上(解析为 Java 对象时将其排除)
@JsonProperty 在 getter 上(解析为 JSON 对象时包含它)

关于java - 如何使用 Jackson 的 ObjectMapper.readerForUpdating 忽略某些字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35754940/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com