我正在尝试从android应用程序上的WS获取项目列表,但响应始终为null。
这是我的代码,我无法弄清楚:
接口:
public interface CategoriesInterface {
@GET("/categories")
List<CategorieModel> getCategories(@Query("k") String token);
}
AsynkTask:
new AsyncTask<String, Void, Void>() {
@Override
protected Void doInBackground(String... params) {
try {
Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint( "WS_URL" ) // The base API endpoint.
.setConverter( new GsonConverter(gson) )
.setLogLevel(RestAdapter.LogLevel.FULL)
.build();
CategoriesInterface categoriesInterface = restAdapter.create( CategoriesInterface.class );
List<CategorieModel> list = categoriesInterface.getCategories( params[0] );
// LIST IS ALWAYS NULL
} catch (RetrofitError error) {
Log.e("ERROR", error.toString());
}
return null;
}
}.execute( token );
模型:
public class CategorieModel {
@SerializedName("id")
private String id;
@SerializedName("cat_pt")
private String cat_pt;
@SerializedName("cat_es")
private String cat_es;
}
响应JSON格式:
"categories": [
{
"id": "2",
"cat_pt": “STRING",
"cat_es": “STRING"
},
我不知道我在做什么错。响应列表始终为空。
谢谢
最佳答案
您的JSON返回CategoryContainer,其中包含CategorieModel数组。添加一个新的模型类:
public class CategorieContainer {
private List<CategorieModel> categories = new ArrayList<>();
// TODO Getter / Setter
}
并更改您的Retrofit-Interface:
@GET("/categories")
CategorieContainer getCategories(@Query("k") String token);