我有以下情况:
public class A {
@JsonProperty("member")
private int Member;
}
public class B {
private int Member;
}
Run Code Online (Sandbox Code Playgroud)
现在,我希望执行以下操作:
ObjectMapper mapper = new ObjectMapper();
B b = new B(); b.setMember("1");
A a = mapper.converValue(b, A.class);
Run Code Online (Sandbox Code Playgroud)
通常,这会起作用。但是,由于objectMapper考虑了诸如之类的注释@JsonProperty,因此得到以下结果:
A.getMember(); // Member = NULL
Run Code Online (Sandbox Code Playgroud)
有一种解决方法,其中所有可能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)
Run Code Online (Sandbox Code Playgroud)
但这会导致它也忽略@JsonIgnore 等内容。我不知道有什么方法可以让 ObjectMapper 只忽略特定的注释。
| 归档时间: |
|
| 查看次数: |
2419 次 |
| 最近记录: |