Я использую Fasterxml Джексон 2.2.2Fasterxml Джексон примитивные логические сериализации
У меня есть простой 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
? Что было бы самым простым и простым решением?
Это действительно странно. Он должен работать. Не могли бы вы показать свой класс сущности и как вы сериализуете этот объект? Для меня это работает. My entity: class 'Entity {private long id; private boolean enabled; getters/setters} 'и smy serialize code:' new ObjectMapper(). writeValueAsString (entity) ' –
Включено ли в ваше поле включенное значение 'JsonSerialize.Inclusion.NON_DEFAULT'? – HiJon89