我有一门课:
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);
发布于 2012-06-20 06:58:26
您需要的是使用@JsonProperty
注释计算属性,使其看起来如下所示:
class MyClass {
@Getter
@Setter
int a;
@Getter
@Setter
int b;
@JsonProperty
public int getADivB() {
return a / b;
}
}
发布于 2012-07-12 19:27:50
你可以用注解你的类
@JsonIgnoreProperties(ignoreUnknown = true)
让Jackson在反序列化过程中忽略该属性。
发布于 2012-05-11 05:56:26
序列化不会序列化方法中的a/b,只会序列化成员字段
https://stackoverflow.com/questions/10542504
复制相似问题