«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу подавить значения нулевого поля во время сериализации Джексона?

Как я могу подавить значения нулевого поля во время сериализации Джексона?

Опубликовано 21 декабря 2024 г.
Просматривать:313

How Can I Suppress Null Field Values During Jackson Serialization?

Обработка значений пустых полей в сериализации Джексона

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