2016-11-21 5 views
0

私はRetrofitに問題があります。Retrofitは、そのタイプのRequestBodyを直列化するためのランタイムタイプではなく、静的タイプのクラスを使用しています。改装2.1.0 + Gson。サブクラスである@Bodyをシリアライズ

@Post("/someUrl) 
Observable<Void> someRequest(@Body A body); 

私はsomeRequestにAまたはBのインスタンスを渡すと、それらが適切に基づかシリアライズしたい:今、私は要求を作りたい

class A{ 
    String a; 
} 

class B extends A{ 
    String b; 
} 

のは、私は2つのクラスがあるとしましょうクラス型。

私はRuntimeTypeAdapterFactoryを使用しようとしましたが、うまくいきましたが、シリアル化(型フィールド)の後に追加フィールドが追加されました。 私のA、Bクラスはシリアル化にのみ使用されます。

答えて

0

はちょうど方法自体オーバーロードを考えてみましょう:良い答えだ

@Post("/someUrl) 
Observable<Void> someRequest(@Body A body); 
@Post("/someUrl) 
Observable<Void> someRequest(@Body B body); 
+0

を、私は、私は、要求のための唯一の方法を持ってしたいことを言及する必要があります。 – PaleNisko

関連する問題