簡體   English   中英

翻新2:正確解析帶有多個數組的JSON的方法

[英]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文件並將其直接放入您的項目中。

此鏈接將轉換您的任何json響應並將其轉換為POJO

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM