Как заставить Джексона не выводить поле в XML при сериализации - PullRequest
1 голос
/ 02 октября 2019

Аналогично этому вопросу Я хочу игнорировать поле в моем Java POJO. Однако я хочу всегда игнорировать поле независимо от того, является ли оно пустым.

В моем случае мне нужно заполнить значение поля для логики, но позже, когда я выводю свой xml, я не хочу, чтобы это поле включалось.

@AllArgsConstructor
@NoArgsConstructor
public class MyNotification {
    @Setter @Getter private String id;
    @Setter @Getter private String time;
    @Setter @Getter private String flag;
    @Setter @Getter private String event;
    @Setter @Getter private String type;
}

Вывод должен выглядеть следующим образом:

    <MyNotification>
        <id>112314</id>
        <time>2019-08-20T08:41:45Z</time>
        <flag>new</flag>
        <type>T01</type>
    </MyNotification>

Экспериментировали с @JsonIgnore, но при использовании поле не заполняется.

1 Ответ

1 голос
/ 02 октября 2019

Вы должны использовать JsonIgnoreProperties :

@JsonIgnoreProperties(value = "event", allowSetters = true)
class MyNotification

Из документации для allowSetters:

Свойство, которое можно включить, чтобы "установщики" моглииспользоваться (то есть предотвращать игнорирование сеттеров для свойств, перечисленных в value ()).

...