Обработка значений пустых полей в сериализации Джексона
Jackson, популярная библиотека сериализации Java, предоставляет различные параметры конфигурации для настройки поведения сериализации. Одним из распространенных сценариев является подавление сериализации значений полей, имеющих значение NULL. Это гарантирует, что в сериализованный вывод будут включены только ненулевые свойства.
Настройка Джексона для подавления нулевых значений
Существует два основных подхода к указанию Джексону игнорировать пустое значение. значения полей во время сериализации.
1. Использование SerializationInclusion:
ObjectMapper mapper = new ObjectMapper(); mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
Эта глобальная конфигурация применяется ко всем полям во всех классах, которые обрабатываются ObjectMapper. Это гарантирует, что любое поле с нулевым значением будет исключено из сериализованного вывода.
2. Использование аннотации @JsonInclude:
@JsonInclude(Include.NON_NULL) public class SomeClass { private String someValue; }
Применение аннотации @JsonInclude к классу или методу получения позволяет указать поведение сериализации для определенных свойств или подклассов. Установка Include.NON_NULL указывает, что для этого поля должны быть сериализованы только ненулевые значения.
Альтернативные подходы
В качестве альтернативы вы можете использовать аннотацию @JsonInclude в методе получения определенного свойства для условной сериализации свойства только в том случае, если его значение не равно null.
@JsonInclude(value = JsonInclude.Include.NON_NULL, condition = JsonInclude.Include.Condition.NON_NULL) public String getSomeValue() { return someValue; }
Дополнительные рекомендации
Обратите внимание, что эти конфигурации не влияют на процесс десериализации. Если во время десериализации встречается нулевое значение, оно все равно будет установлено в соответствующем поле. Чтобы управлять поведением десериализации, обратитесь к документации Джексона для @JsonIgnoreProperties и @JsonIgnore.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3