3

我正在使用 Fasterxml Jackson 2.2.2

我有一个带有boolean(原始)属性的简单 pojo。当默认BeanSerializerBeanPropertyWritter尝试对其进行序列化时,该属性的值为 时会被跳过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._suppressableValueequals Boolean(false),所以当一个错误的布尔值到达这个块时,它只是返回并且不返回任何输出。

我有哪些选择?我可以将属性的写入器配置为取消设置_suppressableValue吗?什么是最简单和更简单的解决方案?

4

1 回答 1

2

正如建议的那样,您的ObjectMapper设置可能不是默认设置,并指定包含策略NON_DEFAULT.

但是您可以@JsonInclude在 POJO 类甚至布尔属性本身上添加以覆盖它:确保使用Inclusion.ALWAYS.

于 2014-10-10T21:36:11.247 回答