Androidアプリケーションの開発。 私は自分のレスポンスを得るためにレトロフィットを使用しています。現在、私はすべてのタイプのフィールドを含むPOJOモデルクラスを作成しました(現実にはフィールドとメソッドがありますので、ここではそれらを単純化しました)。 Client.class
から更新:オブジェクトのリストを異なるタイプにデシリアライズ
コード:拡張基底クラス現在Car.class
あるすべてのタイプ(Taxi.class
とVan.class
)のため
OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.readTimeout(30, TimeUnit.SECONDS);
OkHttpClient okHttpClient = builder.build;
Retrofit retrofit = new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
.client(okHttpClient)
.build();
私は何を達成したいことはある特定のモデル私Car.class
は次のようになります。
public class Car {
public String type;
public String id;
public boolean isClean;
public int seats;
public int fuelTankCapacity;
}
私は車、バン、タクシーのモデルを持っていますサーバーから
public class Car {
public String type;
public String id;
}
public class Van extends Car {
public int fuelTankCapacity;
}
public class Taxi extends Car {
public boolean isClean;
public int seats;
}
が応答(JSON):このようなS
{
"items": [{
"type": "taxi",
"id": "1i2ilkad2",
"isClean": "true",
"seats": "5"
},
{
"type": "van",
"id": "aopks21k",
"fuelTankCapacity": 76
}, etc...
]
}
は、私はそれがインスタンスを改造する.addConverterFactory(new CarJSONConverter())
のような行を追加すると何とか行われるべきであることを理解しているが、私はどのように考えています私は/ ..
を、これが正解です。どうもありがとう! :) – user2532781