私は新しいプロジェクトに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"のリストになります)
コメントありがとうございます。
私にはうまく見えます。あなたの疑問は何ですか? – Blackbelt
"SimpleObject"には2つのモデルクラスがあり、ステータス、メッセージ、および5には2つのモデルクラスがあり、それぞれ – Naveedumar
という3つの異なるクラスは必要ありません。 jsonのネストレベルごとに1つずつ – Blackbelt