简体   繁体   English

如何创建嵌套 json 的 pojo 文件以获取 retrofit 的响应

[英]How to create pojo file of nested json for getting response with retrofit

How can I create pojo file for nested json to get response with retrofit.如何为嵌套的 json 创建 pojo 文件以获得 retrofit 的响应。 Follwing are my json.以下是我的 json。

{
        "Category_Name": [
            "Breads",
            "Combo and Thali",
            "Main Course",
            "Rice and Biryani"
        ],
        "Alldishitems": [
            [
                {
                    "Subcategory": "Brown bread",
                    "DishName": "Stuffed Paratha",
                    "DishPrice": "100",
                    "Dishquantity": "10",
                    "Dishdescription": ""
                },
                {
                    "Subcategory": "white Bread",
                    "DishName": "Plain Paratha",
                    "DishPrice": "136",
                    "Dishquantity": "10",
                    "Dishdescription": ""
                }
            ],
            [
                {
                    "Subcategory": "Combo",
                    "DishName": "Rajma Masala Combo",
                    "DishPrice": "136",
                    "Dishquantity": "10",
                    "Dishdescription": ""
                },
                {
                    "Subcategory": "Combo",
                    "DishName": "Lassi with Aloo Paratha",
                    "DishPrice": "100",
                    "Dishquantity": "10",
                    "Dishdescription": ""
                },
                {
                    "Subcategory": "Thali",
                    "DishName": "Chinise thali",
                    "DishPrice": "100",
                    "Dishquantity": "10",
                    "Dishdescription": ""
                }
            ],
    ]

Follwing code I have tried but getting null以下代码我试过但得到 null

public class ServerResponse {
    @SerializedName("Category_Name")
    String[] Category_Name;
    @SerializedName("Alldishitems")
    ArrayList<ArrayList<Getmenulist>>getmenudata = new  ArrayList<ArrayList<Getmenulist>>();

    public  ServerResponse(String[] category_Name,ArrayList<ArrayList<Getmenulist>> getmenudata)
    {
        this.Category_Name=category_Name;
        this.getmenudata=getmenudata;
    }

    public String[] getCategory_Name() {
        return Category_Name;
    }

    public ArrayList<ArrayList<Getmenulist>>getGetmenudata() {
        return getmenudata;
    }
}

public class Getmenulist {
    @SerializedName("Alldishitems")
    List<Getmenulist.Getmenudata> data;
    public Getmenulist(List<Getmenulist.Getmenudata> data)
    {
        this.data=data;
    }

    public List<Getmenulist.Getmenudata> getData() {
        return data;
    }
    public class Getmenudata {
        @SerializedName("Subcategory")
        String Subcategory;
        @SerializedName("DishName")
        String DishName;
        @SerializedName("DishPrice")
        String DishPrice;
        @SerializedName("Dishquantity")
        String dishQuantities;
        @SerializedName("Dishdescription")
        String Dishdescription;
        @SerializedName("image")
        String image;


        public Getmenudata(String Subcategory, String DishName, String DishPrice, String dishQuantities, String Dishdescription, String image) {
            this.Subcategory = Subcategory;
            this.DishName = DishName;
            this.DishPrice = DishPrice;
            this.dishQuantities = dishQuantities;
            this.Dishdescription = Dishdescription;
            this.image = image;

        }

        public String getDishdescription() {
            return Dishdescription;
        }

        public String getImage() {
            return image;
        }

        public String getDishName() {
            return DishName;
        }

        public String getDishPrice() {
            return DishPrice;
        }

        public String getDishQuantities() {
            return dishQuantities;
        }

        public String getSubcategory() {
            return Subcategory;
        }

    }
}

Above code I have tried but getting null.I got the size of array but there is not data in that.and if your dont mind please help me to get out this problem.上面的代码我试过了,但得到了 null。我得到了数组的大小,但里面没有数据。如果你不介意,请帮我解决这个问题。 do I need to change json or pojo file.我需要更改 json 或 pojo 文件吗? I am trying to fetch data for sticky list.我正在尝试获取粘性列表的数据。 My data like Category then subcategory and after that list of that data.我的数据如 Category 然后是子类别,然后是该数据列表。

the error is in ServerResponse class, getmenudata is not a arraylist< arrayList<...>> because there's already a list in Germenulist class try:错误在 ServerResponse class,getmenudata 不是 arraylist< arrayList<...>> 因为 Germenulist class 中已经有一个列表尝试:

public class ServerResponse {
    @SerializedName("Category_Name")
    String[] Category_Name;
    @SerializedName("Alldishitems")
    List<Getmenulist> getmenudata = new ArrayList<Getmenulist>();

    public ServerResponse(String[] category_Name, ArrayList<Getmenulist> getmenudata) {
        this.Category_Name = category_Name;
        this.getmenudata = getmenudata;
    }

    public String[] getCategory_Name() {
        return Category_Name;
    }

    public List<Getmenulist> getGetmenudata() {
        return getmenudata;
    }


}

public class Getmenulist {

    @SerializedName("Alldishitems")
    List<Getmenudata> data;

    public Getmenulist(List<Getmenulist.Getmenudata> data) {
        this.data = data;
    }

    public class Getmenudata {
        @SerializedName("Subcategory")
        String Subcategory;
        @SerializedName("DishName")
        String DishName;
        @SerializedName("DishPrice")
        String DishPrice;
        @SerializedName("Dishquantity")
        String dishQuantities;
        @SerializedName("Dishdescription")
        String Dishdescription;
        @SerializedName("image")
        String image;


        public Getmenudata(String Subcategory, String DishName, String DishPrice, String dishQuantities, String Dishdescription, String image) {
            this.Subcategory = Subcategory;
            this.DishName = DishName;
            this.DishPrice = DishPrice;
            this.dishQuantities = dishQuantities;
            this.Dishdescription = Dishdescription;
            this.image = image;

        }

        public String getDishdescription() {
            return Dishdescription;
        }

        public String getImage() {
            return image;
        }

        public String getDishName() {
            return DishName;
        }

        public String getDishPrice() {
            return DishPrice;
        }

        public String getDishQuantities() {
            return dishQuantities;
        }

        public String getSubcategory() {
            return Subcategory;
        }
    }

}

1. your json format is wrong. 1.你的json格式不对。 here is the updated json:这是更新的 json:

{ 
   "Category_Name":[ 
      "Breads",
      "Combo and Thali",
      "Main Course",
      "Rice and Biryani"
   ],
   "Alldishitems":[ 
      [ 
         { 
            "Subcategory":"Brown bread",
            "DishName":"Stuffed Paratha",
            "DishPrice":"100",
            "Dishquantity":"10",
            "Dishdescription":""
         },
         { 
            "Subcategory":"white Bread",
            "DishName":"Plain Paratha",
            "DishPrice":"136",
            "Dishquantity":"10",
            "Dishdescription":""
         }
      ],
      [ 
         { 
            "Subcategory":"Combo",
            "DishName":"Rajma Masala Combo",
            "DishPrice":"136",
            "Dishquantity":"10",
            "Dishdescription":""
         },
         { 
            "Subcategory":"Combo",
            "DishName":"Lassi with Aloo Paratha",
            "DishPrice":"100",
            "Dishquantity":"10",
            "Dishdescription":""
         },
         { 
            "Subcategory":"Thali",
            "DishName":"Chinise thali",
            "DishPrice":"100",
            "Dishquantity":"10",
            "Dishdescription":""
         }
      ]
   ]
}

2. There should be two classes for this Json file: 2.这个Json文件应该有两个类:

  1. YourName.java你的名字.java
public class PojoClass
{
    private String[] Category_Name;

    private Alldishitems[][] Alldishitems;

    public String[] getCategory_Name ()
    {
        return Category_Name;
    }

    public void setCategory_Name (String[] Category_Name)
    {
        this.Category_Name = Category_Name;
    }

    public Alldishitems[][] getAlldishitems ()
    {
        return Alldishitems;
    }

    public void setAlldishitems (Alldishitems[][] Alldishitems)
    {
        this.Alldishitems = Alldishitems;
    }

    @Override
    public String toString()
    {
        return "ClassPojo [Category_Name = "+Category_Name+", Alldishitems = "+Alldishitems+"]";
    }
}
  1. Allitems.java Allitems.java
public class Alldishitems
{
    private String Subcategory;

    private String DishPrice;

    private String Dishquantity;

    private String Dishdescription;

    private String DishName;

    public String getSubcategory ()
    {
        return Subcategory;
    }

    public void setSubcategory (String Subcategory)
    {
        this.Subcategory = Subcategory;
    }

    public String getDishPrice ()
    {
        return DishPrice;
    }

    public void setDishPrice (String DishPrice)
    {
        this.DishPrice = DishPrice;
    }

    public String getDishquantity ()
    {
        return Dishquantity;
    }

    public void setDishquantity (String Dishquantity)
    {
        this.Dishquantity = Dishquantity;
    }

    public String getDishdescription ()
    {
        return Dishdescription;
    }

    public void setDishdescription (String Dishdescription)
    {
        this.Dishdescription = Dishdescription;
    }

    public String getDishName ()
    {
        return DishName;
    }

    public void setDishName (String DishName)
    {
        this.DishName = DishName;
    }

    @Override
    public String toString()
    {
        return "ClassPojo [Subcategory = "+Subcategory+", DishPrice = "+DishPrice+", Dishquantity = "+Dishquantity+", Dishdescription = "+Dishdescription+", DishName = "+DishName+"]";
    }
}

Note : Remove unnecessary things from code.注意:从代码中删除不必要的东西。

Hope this will help you.希望这会帮助你。 cheers.干杯。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM