我需要帮助.
我有一个接受参数的端点.根据此参数,JSON
返回的内容将完全不同.
有可能RetroFit
处理这个吗?
例如:
http://myserver.com/all/
其中参数是BUS
或者BICYCLE
,以及稍后添加其他参数.
示例BUS
请求将返回:
"stops": [{ "Lat": "....", "Lng": "....", "Name": "Main Street", "Route": "", "StopNumber": "2" }]
该BICYCLE
端点将返回:
"stops": [{ "address": "Town Centre", "lat": "....", "lng": "....", "number": "63", "open": "1" }]
根据用户所在的Android应用程序的哪个部分,我想发送一个不同的参数,并能够使用相同的调用来处理它.
我正在考虑使用一个名为AllTypes
其他类扩展的父类,然后将我的Retrofit
调用签名设置为:
@GET("/all/{type}") void getAll(@Path("type") String type, Callbackcallback);
但我不确定是否Retrofit
可以AllTypes
根据返回的JSON
,甚至传递的参数自动选择正确的子类type
.
有谁知道如何做到这一点?如果没有,我将只需要使用不同的Callback类型创建多个不同的方法.
谢谢.
只是关闭这个.
您可以从中获取原始JSON RetroFit
并使用GSON
手动序列化到所需的类类型.
例如:
RestClient.get().getDataFromServer(params, new Callback() { @Override public void success(JSONObject json, Response response) { if(isTypeA) { //Use GSON to serialise to TypeA } else { //Use GSON to serialise to TypeB } } });