Джексон: условно выбирай поля - PullRequest
7 голосов
/ 02 февраля 2012
I have a scenario where i need to use the payload as 

{"authType":"PDS"}
or
{"authType":"xyz","authType2":"abc",}
or
{"authType":"xyz","authType2":"abc","authType3":"123"}
or
any combination except for null values.

ссылаясь на код, у меня есть 3 поля, но можно использовать только поля с нулевым значением.По сути, я не хочу включать поле с нулевым значением.

Есть ли какие-либо аннотации, которые будут использоваться, чтобы сделать это

public  class AuthJSONRequest {

    private String authType;
    private String authType2;
    private String authType3;

    public String getAuthType() {
        return authType;
    }

    public void setAuthType(String authType) {
        this.authType = authType;
    }

    public String getAuthType2() {
        return authType2;
    }

    public void setAuthType2(String authType2) {
        this.authType2 = authType2;
    }
        public String getAuthType3() {
        return authType3;
    }

    public void setAuthType3(String authType3) {
        this.authType3 = authType3;
    }

}

Ответы [ 2 ]

10 голосов
/ 02 февраля 2012

Попробуйте JSON Views? См. это или это . Для получения дополнительной информации о фильтрации см. эту запись в блоге (например, Json Filters).

5 голосов
/ 08 мая 2013

Это как раз то, для чего предназначены аннотации @JsonInclude в Джексоне2 и @JsonSerialize в Джексоне.

Если вы хотите, чтобы свойство отображалось только тогда, когда оно не равно null, добавьте @JsonInclude(Include.NON_NULL) соотв. @JsonSerialize(include=Include.NON_NULL).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...