How to tell Jackson to ignore a field during serialization if its value is null?
Как сказать Джексону игнорировать поле во время сериализации, если его значение равно null?
Как можно настроить Jackson на игнорирование значения поля во время сериализации, если значение этого поля равно null.
Например:
publicclassSomeClass { // what jackson annotation causes jackson to skip over this value if it is null but will // serialize it otherwise private String someValue; }
Просто чтобы расширить другие ответы - если вам нужно контролировать пропуск значений null для каждого поля, прокомментируйте рассматриваемое поле (или, в качестве альтернативы, прокомментируйте "средство получения" поля).
пример - только здесь fieldOne будет исключен из JSON, если оно равно null. fieldTwo всегда будет включен в JSON, независимо от того, равно ли оно null.
Чтобы опустить все значения null в классе по умолчанию, аннотируйте класс. Аннотации для каждого поля / средства получения по-прежнему можно использовать для переопределения этого значения по умолчанию, если необходимо.
пример - здесь fieldOne и fieldTwo будут опущены в JSON, если они равны null, соответственно, потому что это значение по умолчанию устанавливается аннотацией класса. fieldThree однако переопределит значение по умолчанию и всегда будет включено из-за аннотации к полю.
Если это обновление полезно, пожалуйста, поддержите ответ ЗиглиуКА ниже, в нем указана более новая аннотация Jackson 2 задолго до того, как я обновил свой ответ, чтобы использовать его!
Ответ 3
С помощью Jackson > 1.9.11 и < 2.x для этого используйте @JsonSerialize аннотацию: