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