我的理解是Retrofit和它的Gson解析器期望格式为:
[
{},
{}
]
但是,如果我的API将所有内容包装到以下属性中,该怎么办?
{
'data':[
{},
{}
]
}
如何告诉Retrofit开始从数据内部解析内部对象?
答案 0 :(得分:1)
您可以让您的Retrofit接口方法返回您定义的自定义类型,该类型本身包含一个名为data的列表。
public class MyResponse {
private final List<Thing> data;
}
public interface MyApi {
@GET("/data")
Call<MyResponse> getThings();
}
这是最简单的解决方案。您可以在注册了TypeAdapter
实例的Gson
中实现自定义反序列化逻辑,忽略对象包装器,但它会更复杂,如果API返回了一些有用的东西,您需要进行一些重构在那个包装中。