使用 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);
我有这个 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);