@lacredin
Программист

Как обработать изменяющийся тип объекта json, с помощью gson?

Доброго времени суток!
Я использую в своём проекте gson библиотеку.
Использую стандартным способом, создавая класс объекта json
spoiler
package ru.grozny.charity.groznycharitablefoundation.models;

import android.os.Parcel;
import android.os.Parcelable;

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;

import java.util.List;

public class PaginationModel implements Parcelable {
    @SerializedName("total")
    @Expose
    private int totalCount;
    @SerializedName("count")
    @Expose
    private int count;
    @SerializedName("per_page")
    @Expose
    private int perPage;
    @SerializedName("current_page")
    @Expose
    private int currentPage;
    @SerializedName("total_pages")
    @Expose
    private int totalPages;
    @SerializedName("links")
    @Expose
    private LinksModel links;

    public static final Parcelable.Creator<PaginationModel> CREATOR =
            new Parcelable.Creator<PaginationModel>() {

                public PaginationModel createFromParcel(Parcel in) {
                    return new PaginationModel(in);
                }

                public PaginationModel[] newArray(int size) {
                    return new PaginationModel[size];
                }
            };

    private PaginationModel(Parcel parcel) {
        totalCount = parcel.readInt();
        count = parcel.readInt();
        perPage = parcel.readInt();
        currentPage = parcel.readInt();
        totalPages = parcel.readInt();
        links = parcel.readParcelable(LinksModel.class.getClassLoader());
    }

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeInt(totalCount);
        dest.writeInt(count);
        dest.writeInt(perPage);
        dest.writeInt(currentPage);
        dest.writeInt(totalPages);
        dest.writeParcelable(links, 30);
    }

    public int getTotalCount() {
        return totalCount;
    }

    public int getCount() {
        return count;
    }

    public int getCurrentPage() {
        return currentPage;
    }

    public int getTotalPages() {
        return totalPages;
    }

    public LinksModel getLinks() {
        return links;
    }
}


С сервера приходит json в которых есть поле links, которое может прийти в виде объекта json или в виде массива json.
Соответственно, в текущем состоянии парсинг json не работает, если links приходит в виде массива.
Подскажите пожалуйста, как поступать в таком случае.
  • Вопрос задан
  • 214 просмотров
Решения вопроса 1
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
Ну собсно, пиши свой адаптер для этого поля. И парсь его как хочешь
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы