Джексон: как включить свойство нулевого значения в сериализацию JSON - PullRequest
0 голосов
/ 14 января 2019

Я пытаюсь сгенерировать ответ JSON, используя мои собственные классы сущностей Java вместе с аннотациями Джексона. Два ключевых значения должны быть нулевыми в моем ответе JSON, но если я установлю их на нуль, они исчезнут из JSON. К сожалению, я ограничен Джексоном версии 1.9.13.

Я уже пытался установить значения на ноль, используя

@JsonSerialize(include = JsonSerialize.Inclusion.ALWAYS)

Мой ответный объект:

public class Response {

@JsonProperty("data")
private Data data;

@JsonProperty("error")
private Error error;

public Data getData() {
    return data;
}

public void setData(PgSoftAuthData data) {
    this.data = data;
}

public Error getError() {
    return error;
}

public void setError(PgSoftError error) {
    this.error = error;
}
}

Я пытаюсь сгенерировать ответ:

Data data = new Data();
data.setName("Name");
data.setTime(null); // This key dissappear from JSON

Response responseSuccess = Response();
responseSuccess.setData(data);
responseSuccess.setError(null); // Error object disappear from JSON

Я хотел бы получить следующий ответ:

{
    "data" : {
        "name" : "Name",
        "time" : null
    },
    "error" : null
}

Ответы [ 2 ]

0 голосов
/ 14 января 2019

Спасибо за ваши ответы! Как я уже упоминал, я ограничен Jackson 1.9.13 и попробовал несколько комбинаций с последующей аннотацией Jackson, но безуспешно:

@JsonSerialize(include = JsonSerialize.Inclusion.ALWAYS)

Тогда я использовал следующее:

@XmlElement(nillable = true)

аннотация об ошибках и именах атрибутов и все работает. Теперь я получаю правильный ответ JSON.

Решение проблемы с атрибутом:

@XmlElement(nillable = true)
@JsonProperty("error")
private Error error;
0 голосов
/ 14 января 2019

Добавить JsonInclude к соответствующим классам Response и Data

(обновлено с помощью комментария @ThomasFritsch)

@JsonInclude(JsonInclude.Include.ALWAYS)

Значение, которое указывает, что свойство должно быть всегда включено, независимо от значения свойства.

...