[英]android - Retrofit 2:Correct way of Parsing JSON with multiple arrays
我第一次開始在新項目中使用Retrofit:2.0.2,並且我已經完成了使用Retrofit進行的首次服務呼叫,但不確定這是否正確,這就是我所做的
網絡服務響應
{
"status": true,
"message": "",
"data": {
"schools": [ { "id": "1", "name": "test 1" }, { "id": "2", "name": "test 12" }],
"referrals": [ { "id": "195", "name": "test 1" }, { "id": "1483", "name": "test 12" }],
"Brands": [ { "id": "195", "name": "test 1" }, { "id": "1483", "name": "test 12" }],
"Teams": [ { "id": "195", "name": "test 1" }, { "id": "1483", "name": "test 12" }],
"positions": [ { "id": "195", "name": "test 1" }, { "id": "1483", "name": "test 12" }],
}
}
創建了3個模型類以映射以上響應
public class SimpleObject {
int id;
String name;
// getter setter
}
public class SimpleData {
private List<SimpleObject> schools = new ArrayList<SimpleObject>();
private List<SimpleObject> referrals = new ArrayList<SimpleObject>();
private List<SimpleObject> positions = new ArrayList<SimpleObject>();
private List<SimpleObject> Teams = new ArrayList<SimpleObject>();
private List<SimpleObject> Brands = new ArrayList<SimpleObject>();
// getter, setter
}
public class ResponseData{
boolean status;
String message;
SimpleData data;
// getter setter
}
然后使用Retrofit2進行服務呼叫
call.enqueue( new Callback<ResponseData>() {
@Override
public void onResponse(Call<ResponseData> call, Response<ResponseData> response) {
}
@Override
public void onFailure(Call<ResponseData> call, Throwable t) {
}
及其工作正常,但要確保這是執行此操作的最佳方法,或者可以建議任何人為處理此類響應而無需為簡單數據創建多個模型類的最佳方法(應該只有一個模型類“ SimpleObject”和其他將是“ SimpleObject”的列表)
請發表評論或提出處理回復的最佳方法。
您目前使用的結構看起來很正確。 您需要為JSON響應中的每個嵌套級別都有一個模型。
唯一的其他選擇是簡單地使用鍵將對象分解,以拉出所有JSONObjects和JSONArrays,我不建議這樣做。
將您的json響應復制並粘貼到下面給出的鏈接中,然后下載zip文件並將其直接放入您的項目中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.