Джексон использует JsonSerialize.Inclusion.NON_NULL, за исключением одного класса

Обычно я использую objectMapper.setSerializationInclusion(JsonSerialize.Inclusion.NON_NULL), потому что я никогда не хочу, чтобы нулевые значения моих классов были сериализованы. Кроме того, теперь я должен указать конкретное поле, даже если оно равно null. Есть ли быстрая аннотация, которую я могу разместить в этом поле, которое переопределяет свойство Inclusion.NON_NULL для этого одного поля? Какой хороший способ достичь этого?

Ответ 1

С Jackson 1.x вы можете использовать @JsonSerialize(include = Inclusion.ALWAYS) а с Jackson 2.x вы можете использовать @JsonInclude(Include.ALWAYS). Эти аннотации переопределяют конфигурацию по умолчанию из вашего ObjectMapper.

Ответ 2

@user1433372, JsonInclude - это аннотация только для Jackson 2.x.

в Джексоне 1.9

@JsonSerialize(include=JsonSerialize.Inclusion.NON_EMPTY)

то же самое в Jackson 2.x как

@JsonInclude(JsonInclude.Include.NON_EMPTY)

Ответ 3

С Jackson 1.9 используется @JsonSerialize(include= JsonSerialize.Inclusion.ALWAYS)

@JsonSerialize(include=Include.ALWAYS) не компилировался.