我有一个类(class):
class MyClass {
@Getter
@Setter
int a;
@Getter
@Setter
int b;
public int getADivB() {
return a / b;
}
}
序列化时,我需要对所有三个属性进行序列化。但是,如果另一个 Java 进程正在反序列化消息,我希望 jackson 忽略计算字段。 (不要像@JSONIgnore 一样忽略它)
反序列化代码为:
String json = ... //get json from message
JsonNode root = this.mapper.readTree(json);
MyClass abdiv = this.mapper.readValue(root, MyClass.class);
最佳答案
您需要的是使用 @JsonProperty
注释计算属性
所以它看起来像这样:
class MyClass {
@Getter
@Setter
int a;
@Getter
@Setter
int b;
@JsonProperty
public int getADivB() {
return a / b;
}
}
关于java - 忽略反序列化中的计算字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10542504/