@di_gangsta

Как запарсить двойной JsonObject в Retrofit?

Используя библиотеку Retrofit, обработать ответ от сервера, который выглядит вот так
{"token":"WFRHaUlzM0t1dlc1T1N6dkdpNlZIQlZ1RXV3c0l2dGwyc2NFN0RsU3pTbDdyYWpMNDJua0NqNSs2WmJKTWpJVA","errorNumber":3,"errorDescription":"invalid token","user":{"id":null,"type":0}}


Сложность в том, что поле "user" содержит встроенные в себя элементы и просто не получаю их. Вот код моего Callback-а на Java. Подскажите, как сделать правильно.
import com.google.gson.annotations.SerializedName;
import org.json.JSONObject;

class TattooMarketServerInfo {
    @SerializedName("token")
    private String token;
    @SerializedName("errorNumber")
    private String errorNumber;
    @SerializedName("errorDescription")
    private String errorDescription;
// user fields
    @SerializedName("user")
    private JSONObject user;
    @SerializedName("type")
    private int type;
    @SerializedName("id")
    private String id;


    @Override
    public String toString() {
        return "TattooMarketServerInfo:" + '\n' +
                "token = " + token + '\n' +
                "errorNumber = " + errorNumber + '\n' +
                "errorDescription = " + errorDescription + '\n' +
                "user = " + user.toString()  + '\n' +
                "id = " + id + '\n' +
                "type = " + type + '\n';
    }
}
  • Вопрос задан
  • 91 просмотр
Решения вопроса 1
iLLuzor
@iLLuzor
Java, Kotlin, Android Developer
Создайте отдельный класс User с полями id и type.
В классе TattooMarketServerInfo тип поля user должен быть User, а не JSONObject, а поля type и id из класса TattooMarketServerInfo нужно удалить.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Gregary
Вот есть отличный туториал на русском языке и на Kotlin как работать с GSON и Retrofit androidschool.ru/courses/android-retrofit-and-gson
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы