【发布时间】:2014-08-19 11:04:30
【问题描述】:
我定义了这个类
public class PostServerActionsRequest {
private ChangePassword changePassword;
private Reboot reboot;
private Rebuild rebuild;
private Resize resize;
private String confirmResize;
private String revertResize;
private CreateImage createImage;
//constructor + getter & setter
}
我曾经使用杰克逊 json 处理器解析多个 json 请求。情况如下:我收到一个具有这种结构的json:
//Json A
{
"reboot": {
"type": "SOFT"
}
}
我用一个名为type的私有字符串属性定义类Reboot。显然,json 中没有相对等价的属性在反序列化期间被杰克逊设置为 null。所以序列化我得到这个json:
//Json B
{
"changePassword": null,
"reboot": {
"type": "SOFT"
},
"rebuild": null,
"resize": null,
"confirmResize": null,
"revertResize": null,
"createImage": null
}
现在我知道如何告诉 jackson 在序列化过程中忽略 null 或空值,例如使用类 PostServerActionsRequest 上方的注释 @JsonSerialize(include=JsonSerialize.Inclusion.NON_DEFAULT) em>,但我的问题是,可以告诉杰克逊在反序列化期间不要设置为不在 json 请求(json A)中的空值吗?这是因为我想获得一个类只有 json 请求中存在的值。 我希望我能清楚地解释我的问题,并提前感谢您的帮助。
【问题讨论】:
标签: java json jersey jackson deserialization