我使用的是Fasterxml Jackson 2.2.2
我有一个简单的pojo,它有一个boolean (原始)属性。当默认的BeanSerializer和BeanPropertyWritter尝试序列化它时,当它的值为false时,将跳过该属性。
我想要:
{"id":1, "enabled":false}我得到的是:
{"id":1}BeanPropertyWritter中的代码是:
// and then see if we must suppress certain values (default, empty)
if (_suppressableValue != null) {
if (MARKER_FOR_EMPTY == _suppressableValue) {
if (ser.isEmpty(value)) {
return;
}
} else if (_suppressableValue.equals(value)) {
return;
}
}我对它进行了调试,发现BeanPropertyWritter._suppressableValue等于Boolean(false),所以当一个假的布尔值到达这个块时,它只返回,不返回任何输出。
我有什么选择?我可以将属性的写入器配置为取消设置其_suppressableValue吗?最简单、最简单的解决方案是什么?
发布于 2014-10-11 05:36:11
正如所建议的,您的ObjectMapper设置可能是非默认的,并指定NON_DEFAULT的包含策略。
但是您可以在POJO类上添加@JsonInclude来覆盖它,甚至可以为boolean属性本身添加覆盖:请确保使用Inclusion.ALWAYS。
https://stackoverflow.com/questions/18761540
复制相似问题