Доступ к вложенным данным JSON в адаптере утилита просмотра с помощью Retrofit - PullRequest
0 голосов
/ 09 декабря 2018

Я использую Retrofit2.4.0 для получения данных из базы данных mysql, которая использует PHP в качестве веб-сервиса.Я возвращаю данные JSON в следующем формате: -

{
"result": [
    {
        "category_Id": 1,
        "category_Name": "Jyotirling",
        "category_Image": "jyotirling.jpg",
        "total_Mandir": 12
    },
    {
        "category_Id": 2,
        "category_Name": "Akshardham",
        "category_Image": "akshardham.jpg",
        "total_Mandir": 2
    },
    {
        "category_Id": 3,
        "category_Name": "AshtaVinayak",
        "category_Image": "ashtavinayak.jpg",
        "total_Mandir": 8
    }
],
"message": "Data found",
"status": "200"
}

Мои классы Pojo:

1)

public class MandirCategory {

    @SerializedName("result")
    @Expose
    private List<MandirCategoryResults> result = null;
    @SerializedName("message")
    @Expose
    private String message;
    @SerializedName("status")
    @Expose
    private String status;

    public List<MandirCategoryResults> getResult() {
        return result;
    }

    public void setResult(List<MandirCategoryResults> result) {
        this.result = result;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

}

2) Класс результата для вложенных данных

public class MandirCategoryResults {
    @SerializedName("category_Id")
    @Expose
    private Integer categoryId;
    @SerializedName("category_Name")
    @Expose
    private String categoryName;
    @SerializedName("category_Image")
    @Expose
    private String categoryImage;
    @SerializedName("total_Mandir")
    @Expose
    private Integer totalMandir;

    public Integer getCategoryId() {
        return categoryId;
    }

    public void setCategoryId(Integer categoryId) {
        this.categoryId = categoryId;
    }

    public String getCategoryName() {
        return categoryName;
    }

    public void setCategoryName(String categoryName) {
        this.categoryName = categoryName;
    }

    public String getCategoryImage() {
        return categoryImage;
    }

    public void setCategoryImage(String categoryImage) {
        this.categoryImage = categoryImage;
    }

    public Integer getTotalMandir() {
        return totalMandir;
    }

    public void setTotalMandir(Integer totalMandir) {
        this.totalMandir = totalMandir;
    }
}

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

Я могу получить доступ к атрибуту сообщения в обзоре переработчика следующим образом:

String msg = listData.get(i).getMessage();

Но как получить значение categoryName?

EDIT: код, который используется для получения данных JSON

 @GET("getMandirCategories.php")
 Call<List<MandirCategory>> getMandirCategoriesREST();

1 Ответ

0 голосов
/ 09 декабря 2018

Вы пытаетесь представить список с RecyclerView?Если нет, при условии, что синтаксический анализ правилен, это должно работать (indexMandirCategory представляет индекс в списке):

String category = listData.get(i).getResult().get(indexMandirCategory).getCategoryName();
...