我有一个类Person
,我想使用jackson从JSON反序列化POJO。现在,
Person
类的定义类似于:
class Person {
int id;
String name;
boolean isOldAge;
boolean hasSenseOfHumor;
.
.
.
}
现在我的json就像:
{
"id" : 1,
"isOldAge" : false
}
现在,当我将其反序列化为POJO时,我将得到的值是:
[id=1,name="",isOldAge=false,hasSenseOfHumor=false]
,即json中未提及的属性将被赋予其默认值。
所以我的问题就在这里。有没有一种方法可以区分isOldAge
和hasSenseOfHumor
,无论是否由用户提及或提供。
答案 0 :(得分:0)
尝试将原始boolean
更改为装箱Boolean
类型。这些字段应该用null
值初始化。
如果你不能改变类的字段类型,那么可以提前读取你的JSON作为映射,如下mapper.readValue(JSON, Map.class)
,然后推断出结果映射实例中是否存在布尔字段。