改造对象内部的 GSON 解析数组列表

Retrofit GSON Parsing Arraylist Inside of Object

我有一个这样的 json 对象:

{
products:[
{
name:Prod1,
quantity:3
},
{
name:Prod2,
quantity:1
}
]
}

我的 gson 对象是这样的:

public class Product{

@SerializedName("name")
public String name;

@SerializedName("quantity")
public int quantity;

}

当我用这样的东西设置改造时

@GET("/products")
void getProducts(Callback<ArrayList<Product>> c);

显然,它会失败,因为该数组不是根对象。有没有一种简单的方法可以强制它在解析 ArrayList 之前深入到 json 一个级别,或者我是否必须创建一个完整的 GSON 适配器来完成这个?

我通过创建和使用我自己的自定义反序列化器实现了这一点。该代码比完整的 Gson 适配器更简单,但可以满足我的需要。

https://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/com/google/gson/JsonDeserializer.html