java - 如何从 android Java 的改造中访问 arralist 响应的子数组列表?
问题描述
我正在开发必须在 API 上实现的项目。此 API 响应是 ArrayList 的对象。您能帮我了解如何访问子数组列表吗?我正在使用改造 2 和 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
}
]
}
}
我的改造电话活动:
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
}
解决方案
如果你想解析未知的 json,你应该使用这样的东西:
Iterator<?> iterator = jsonObject.keys();
while (iterator.hasNext()) {
String key = (String)iterator.next();
//do what you want with the key.
}
推荐阅读
- python - 对 memcache 将 AppEngine py2.7 应用程序迁移到 py3 感到困惑
- facebook - 从 fb.watch 别名获取 Facebook 视频 ID
- java - Java.lang.RuntimeException:在注册表中找不到应用程序“org.eclipse.test.coretestapplication”
- node.js - 使用 exceljs 并在解析大型 excel 文件时遇到内存泄漏
- javascript - ServiceNow 中的 JavaScript
- python-3.x - 来自 psycopg2 的 ExecuteMany 函数出错
- python - 如何根据具有重复值的列对熊猫中的值进行排序
- python - Selenium Python 单击没有 ID 的按钮
- python - Python 3、concurrent.futures.ProcessPoolExecutor 和 CEF 在达到池大小后崩溃
- debian - E: 软件包 'oracle-java8-installer' 在 Debian 上没有安装候选