Назначить значения по умолчанию для вложенных объектов, когда ответ JSON на сервере не содержит ключ для этого в Moshi? - PullRequest
0 голосов
/ 24 октября 2019

Я использую Moshi для разбора JSON ответов на JAVA объектов. Проблема в том, что когда сервер не отправляет ключ-значение для вложенного класса, moshi назначает его null. Хотя назначение значений по умолчанию для примитивов, String и т. Д. Работает, создание экземпляра вложенного класса не работает.

Родительский класс Customer -

public class Customer {
    @Json(name = "id")
    Integer id;
    @Json(name = "test")
    String test = "I'm batman!";
    @Json(name = "default_address")
    Address defaultAddress = new Address(-1, -1);

    public Integer getId() {
        return id;
    }

    public String getTest() {
        return test;
    }
}

Адресный класс -

public class Address {
    @Json(name = "id")
    Integer id;
    @Json(name = "customer_id")
    Integer customerId;

    public Address(int id, int cusID) {
        this.id = id;
        this.customerId = cusID;
    }

    public Integer getCustomerId() {
        return customerId;
    }

    public Integer getId() {
        return id;
    }
}

Хотя в ответе нет ключа с именем test, он работает. Но когда сервер не отправляет ключ default_address, defaultAddress устанавливается на null.

...