【发布时间】:2016-11-01 16:35:25
【问题描述】:
我在 Android 应用程序中使用 Retrofit 2.1 和 Jackson 对使用 Jackson 反序列化的服务进行后调用。该服务期望传入的 json 看起来像:
{"@class":"com.servicepackagepath$OurClassName","prop1":"value1","prop2":"value2"}
然而,生成并发送到服务的 json 是:
{"prop1":"value1","prop2":"value2"}
结果为 500。改造签名如下所示:
@POST("apiName")
Call<String> apiName(@Body OurClassName ourClassName);
客户端的OurClassName 类与服务端的类不同。完全相同的签名,但它是本地的。
如何让 @class 注释插入到传出的 json 中?
【问题讨论】:
-
我通过创建自定义 json 对象、插入注释、然后将反序列化的 gson 附加到我的对象的 json 表示并将 jsonobject 传递给服务来使其工作。它可以工作,但它完全是一个黑客,不应该是如何使用改造的,所以我不会为它创建一个答案。正确的方法是什么?
标签: java android jackson retrofit retrofit2