我正在尝试使用Retrofit发送请求并能够使用响应。
该服务返回一个像这样的json
{
"code" : 0,
"msg" : "User received",
"data" : {
"name" : "x",
"tags" : [ "a", "b", "c" ]
}
}
结构(代码,消息和数据)相同但数据内部的内容会有所不同。在此示例中应映射到User类。对于其他调用,它将返回帖子列表等。如果出现错误,则不会有数据组件,而是错误属性。
我虽然可以拥有Response类型的特定子类并提示使用它进行改造。
public class Response {
int code;
String msg;
}
public class UserResponse extends Response {
User data;
}
但是当我在返回时没有数据元素时,程序只会在执行操作时中断。
答案 0 :(得分:0)
如果代码和msg属性用于调试,则可以实现com.retrofit.converter.Convert;) 例如,我使用Gson将json转换为java类型。我将在fromBody方法中获取子JsonElement“data”作为gson参数(public Object fromBody(TypedInput body,Type type)抛出ConversionException)。
return gson.fromJson(theDataJsonElement, type);
当然,不要忘记将转换器设置为适配器
restAdapter.setConverter(new YourImplementedConverter());