改造2.1.0 + Gson。序列化@Body是子类

时间:2016-11-21 13:05:41

标签: java android gson retrofit2

我有一个Retrofit的问题,它使用静态类的类,而不是运行时类型来序列化它的RequestBody。

我们说我有两个班级:

class A{
   String a;
}

class B extends A{
   String b;
}

现在我想提出一个请求:

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

我想将A或B实例传递给someRequest,并根据类类型正确地序列化它们。

我尝试使用RuntimeTypeAdapterFactory,它运行良好,但它在序列化后给了我额外的字段(类型字段)。 我的A,B类只用于序列化。

1 个答案:

答案 0 :(得分:1)

考虑重载方法本身:

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