使用 Retrofit 解析的模型

Model parsed with Retrofit

我有这个 JSON 响应,我想用 Model Retrofit 解析

[{"category":{"id":31,"name":"App's."}},
 {"category":{"id":32,"name":"Reinvention"}}]

使用 http://www.jsonschema2pojo.org/ 我得到了这些模型:

public class Category {
    private Integer id;
    private String name;
}

public class CategoryResponse {
    private Category category;
}

这是我的界面:

public interface Api {
    @GET("/categories.json")
    void getCategories(Callback <CategoryResponse> callback);
}

但是下一个调用不起作用:

RestClient.get().getCategories(new Callback<CategoryResponse>() {
            @Override
            public void success(CategoryResponse categoryResponse, Response response) {

            }

            @Override
            public void failure(RetrofitError error) {

            }
        });

有谁知道如何使用 Model Retrofit 进行解析?

您是否有权访问生成 Json 响应的代码? 因为它应该是这样的:

{Category:[{"id":31,"name":"App's."}, 
    {"id":32,"name":"Reinvention"}]}

然后您只需调整您的 CategoryResponse class 以使用列表

public class CategoryResponse {
    private List<Category> category;
}

更简单的方法是将 Json 调整为

[{"id":31,"name":"App's."}, 
    {"id":32,"name":"Reinvention"}]

那么您只需要 Category class 并在您的界面中使用它

@GET("/categories.json")
void getCategories(Callback <List<Category>> callback);

编辑

如果您无法更改 Json,您应该可以像 @SorryForMyEnglish 建议的那样使用 List<CategoryResponse> 来解析它。

那么您的界面将如下所示

@GET("/categories.json")
void getCategories(Callback <List<CategoryResponse>> callback);