Я работаю над проектом, в котором мне нужно реализовать API. Этот ответ API является объектами ArrayList. Не могли бы вы помочь мне с доступом к вспомогательному массиву. Я использую retrofit2 & GSON.
Как показано в следующей схеме JSON, названия брендов будут добавлены в brandsonly
администратором, и он будет добавлен в allorders
как массив, у которого есть несколько подобъекты.
Например, если администратор добавит Redmi
в brandsonly
, тогда он создаст Redmi[]
в allorders
.
{
"status": "success",
"brandsonly": [
{
"_id": "",
"brandname": "SAMSUNG"
},
{
"_id": "",
"brandname": "VIVO"
},
{
"_id": "",
"brandname": "NOKIA"
},
{
"_id": "",
"brandname": "IPHONE"
}
],
"allorders": {
"SAMSUNG": [],
"VIVO": [],
"NOKIA": [],
"IPHONE": [
{
"_id": "",
"order_id": "",
"__v": 0,
"adminconfirmation": 1,
"finalpricetodeduct": 30950
},
{
"_id": "",
"order_id": "",
"__v": 0,
"adminconfirmation": 1,
"finalpricetodeduct": 30950
}
]
}
}
вызов My Retrofit из активности :
final AllOrdersResponse allOrdersResponse = new AllOrdersResponse(userID);
Call<AllOrdersResponse> responseCall = retrofit_interface.allOrderResponse(allOrdersResponse, "Bearer " + AuthToken);
responseCall.enqueue(new Callback<AllOrdersResponse>() {
@Override
public void onResponse(@NotNull Call<AllOrdersResponse> call, @NotNull Response<AllOrdersResponse> response) {
AllOrdersResponse response1 = response.body();
}
@Override
public void onFailure(@NotNull Call<AllOrdersResponse> call, @NotNull Throwable t) {
if (t instanceof SocketTimeoutException)
Toast.makeText(context, "Socket Time out. Please try again.", Toast.LENGTH_LONG).show();
else
Toast.makeText(context, t.toString(), Toast.LENGTH_LONG).show();
}
});
Класс AllOrdersResponse POJO.
public class AllOrdersResponse {
@SerializedName("status")
public String status;
@SerializedName("allorders")
public Allorders allorders;
public List<Brandsonly> brandsonly;
public String getStatus() {
return status;
}
public Allorders getAllorders() {
return allorders;
}
public List<Brandsonly> getBrandsonly() {
return brandsonly;
}
}
Также создан класс BrandResponse
POJO для каждого ответа бренда.
public class BrandResponse{
@SerializedName("_id")
public String ID;
public String order_id;
public String __v;
public String adminconfirmation;
public String finalpricetodeduct;
//And getters also there
}