使用Retrofit解析模型

时间:2015-02-25 11:42:38

标签: android json model response retrofit

我想要使用Model Retrofit解析这个JSON响应

[{"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解析?

1 个答案:

答案 0 :(得分:1)

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

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

然后你只需要调整你的CategoryResponse类来使用List

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

更简单的是将你的Json调整为

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

然后你只需要你的Category课程并在你的界面中使用它

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

修改

如果您无法更改Json,您应该能够使用List<CategoryResponse>解析它,例如@SorryForMyEnglish建议。

然后您的界面将如下所示

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