Код: Выделить всё
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class Account {
[... A lot of serialized properties]
@JsonSerialize(nullsUsing = JacksonSpringSpelSerializer.class, using = JacksonSpringSpelSerializer.class)
@JsonView(View.Contract.class)
@Value("#{@contractService.getActiveContract(#this)}")
public Contract activeContract;
}
Все работает, как ожидалось, НО вычисленное значение иногда может быть нулевым, что нормально, и в итоге я получаю json вот так:
Код: Выделить всё
{
[... All properties],
"activeContract": null
}
Покопавшись немного, я обнаружил, что пользовательский сериализатор вызывается BeanPropertyWriter.serializeAsField(), который содержит:
Код: Выделить всё
if (value == null) {
if (_nullSerializer != null) {
gen.writeFieldName(_name);
_nullSerializer.serialize(null, gen, prov);
}
return;
}
Есть ли правильный способ добиться такого результата? Буду очень рад любым советам
Спасибо