gpt4 book ai didi

java - Jackson 对象映射器如何忽略 JsonProperty 注释?

转载 作者:搜寻专家 更新时间:2023-10-31 20:08:52 24 4
gpt4 key购买 nike

我有以下场景:

public class A {

@JsonProperty("member")
private Integer Member;
}

public class B {

private Integer Member;
}

现在,我想做以下事情:

ObjectMapper mapper = new ObjectMapper();
B b = new B(); b.setMember(1);

A a = mapper.converValue(b, A.class);

通常,这会起作用。但是,由于 objectMapper 考虑了诸如 @JsonProperty 之类的注释,我得到以下结果:

A.getMember(); // Member = NULL

有一个变通方法,所有预计为 null 的字段都是手动设置的,即 A.setMember(b.getMember()); ,但这首先违背了使用 objectMapper 的目的,并且可能容易出错。

有没有办法配置 objectMapper 以忽略给定类(或全局)的 @JsonProperty 字段?

最佳答案

您可以配置 ObjectMapper 以忽略像 @JsonProperty 这样的注释:

ObjectMapper objectMapper = new ObjectMapper().configure(
org.codehaus.jackson.map.DeserializationConfig.Feature.USE_ANNOTATIONS, false)
.configure(org.codehaus.jackson.map.SerializationConfig.Feature.USE_ANNOTATIONS, false)

但这会导致它也忽略诸如@JsonIgnore 等内容。我不知道有什么方法可以让 ObjectMapper 仅忽略特定的注释。

关于java - Jackson 对象映射器如何忽略 JsonProperty 注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45694404/

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