Я хочу создать простое приложение, подобное Uber eats, в котором вы можете заказывать еду, и я хотел бы использовать объект json ниже, чтобы получить данные и привязать их к моему recyclerview с помощью метода get для модернизации. это ссылка на необработанный файл json: https://pastebin.com/raw/xGGjGVD9
{
"categories": {
"01": {
"image": "http://web.archive.org/web/20160530195530if_/http://medifoods.my/wp-content/uploads/2015/03/cover-menu-fingerfoods2.jpg",
"name": "Finger Foods"
},
"02": {
"image": "http://web.archive.org/web/20160530200622if_/http://medifoods.my/wp-content/uploads/2015/03/cover-menu-westernsoup1.jpg",
"name": "Western Soup"
},
"03": {
"image": "http://web.archive.org/web/20160530163903if_/http://medifoods.my/wp-content/uploads/2015/03/cover-menu-easternsoup.jpg",
"name": "Eastern Soup"
},
"04": {
"image": "http://web.archive.org/web/20160530143505if_/http://medifoods.my/wp-content/uploads/2015/03/cover-menu-sandwich.jpg",
"name": "Sandwich"
},
"05": {
"image": "http://web.archive.org/web/20160531085702if_/http://medifoods.my/wp-content/uploads/2015/03/cover-menu-pizza.jpg",
"name": "pizza"
},
"06": {
"image": "http://web.archive.org/web/20160530202100if_/http://medifoods.my/wp-content/uploads/2015/03/cover-menu-pasta1.jpg",
"name": "pasta"
},
"07": {
"image": "http://web.archive.org/web/20160530202109if_/http://medifoods.my/wp-content/uploads/2015/03/cover-menu-chicken.jpg",
"name": "Chicken"
},
"08": {
"image": "http://web.archive.org/web/20160531085955if_/http://medifoods.my/wp-content/uploads/2015/03/cover-menu-fish.jpg",
"name": "Fish"
},
"09": {
"image": "http://web.archive.org/web/20160531025351if_/http://medifoods.my/wp-content/uploads/2015/03/cover-menu-vegetarian.jpg",
"name": "Chinese Vegetarian"
},
"10": {
"image": "http://web.archive.org/web/20160530195451if_/http://medifoods.my/wp-content/uploads/2015/03/cover-menu-delights.jpg",
"name": "Medifoods Delights"
},
"11": {
"image": "http://web.archive.org/web/20160531054218if_/http://medifoods.my/wp-content/uploads/2015/03/cover-menu-snacks.jpg",
"name": "Snacks"
}
}
}
То, что я сделал до сих пор: Я сделал 3 класса для извлечения данные из первого объекта с номером «01», но это всего лишь один объект, у меня есть еще 9 объектов, и если я создам новый класс для каждого объекта, у меня будет много классов. есть ли лучший способ проанализировать этот json объект, или мне нужно создать новый класс для каждого объекта.
public class Properties {
@SerializedName("categories")
private Categories categories;
public Properties(Categories categories) {
this.categories = categories;
}
public Categories getCategories() {
return categories;
}
второй класс:
public class Categories {
@SerializedName("01")
private Foods foods;
public Categories(Foods foods) {
this.foods = foods;
}
public Foods getFoods() {
return foods;
}
третий класс:
public class Foods {
private String image;
private String name;
public Foods(String image, String name) {
this.image = image;
this.name = name;
}
public String getImage() {
return image;
}
public String getName() {
return name;
}
MainActivivy:
private void getFoodProperties() {
Call<Properties> getFood = foodAPI.getProperties();
getFood.enqueue(new Callback<Properties>() {
@Override
public void onResponse(Call<Properties> call, Response<Properties> response) {
if (!(response.isSuccessful())) {
Log.d(TAG, "onResponse: "+ response.code());
return;
}
Log.d(TAG, "onResponse: " + response.body());
foods.add(response.body());
String name = foods.get(0).getCategories().getFoods().getName();
String image = foods.get(0).getCategories().getFoods().getImage();
Log.d(TAG, "onResponse: " + name + " " + image);
}
Интерфейс API:
public interface FoodApi {
@GET("xGGjGVD9")
Call<Properties> getProperties();
}