2016-05-10 4 views
0

私は新しいプロジェクトにretrofit:2.0.2を初めて使用し始めました。最初のサービスコールはレトロフィットを使用して行っていますが、ないここで私はアンドロイド - 複数の配列を持つJSONの構文解析の正しい方法

{ 
    "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" }], 
    } 
} 

が応答上

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 
} 

をマッピングするために3つのモデルクラスを作成し、Retrofit2を使用してサービス呼び出しを行った

Webサービスの応答を行っているものです

call.enqueue(new Callback<ResponseData>() { 
    @Override 
    public void onResponse(Call<ResponseData> call, Response<ResponseData> response) { 

    } 

    @Override 
    public void onFailure(Call<ResponseData> call, Throwable t) { 

    } 

とその作業罰金が、それを保証したいが、それは、これを行うための最善の方法であるか、いずれかは私にしかないはず(単純なデータのために複数のモデルクラスを作成せずに、このような応答を処理する最善の方法を提案することができます1つのモデルクラス "SimpleObject"と他のものは "SimpleObject"のリストになります)

コメントありがとうございます。

+0

私にはうまく見えます。あなたの疑問は何ですか? – Blackbelt

+0

"SimpleObject"には2つのモデルクラスがあり、ステータス、メッセージ、および5には2つのモデルクラスがあり、それぞれ – Naveedumar

+1

という3つの異なるクラスは必要ありません。 jsonのネストレベルごとに1つずつ – Blackbelt

答えて

0

あなたが現在構築している方法が正しいように見えます。 JSONレスポンスにはネストされたレベルごとに1つのモデルが必要です。

他の唯一のオプションは、キーを使用してオブジェクトを分割し、すべてのJSONObjectおよびJSONArraysをプルすることです。これはお勧めしません。

関連する問題