解决了!检查下面的答案
我正在使用GitHub仓库,想要访问用户的名字'回购。 JSON看起来像这样:
[
{
"id": 55848012,
"name": "Android",
"full_name": "VyaraGGeorgieva/Android"
...
...
}
]
我有一个Repo课程
public class Repo {
@SerializedName("name")
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
一个类,存储返回的查询:
public class GitHubRepos {
private Repo[] repos;
public Repo[] getRepos() {
return repos;
}
public void setRepos(Repo[] repos) {
this.repos = repos;
}
endPoint定义如下:
@GET("/users/{user}/repos")
Call<List<GitHubRepos>> getRepoName(@Path("user") String name);
当我尝试执行调用时:
call.enqueue(new Callback<List<GitHubRepos>>() {
@Override
public void onResponse(Call<List<GitHubRepos>> call, Response<List<GitHubRepos>> response) {
Repo[] repos = response.body().**getRepos()**;
Log.d("Repos: ", "Number of repos received: " + repos.length);
}
以这种方式定义,我无法访问getRepos()方法。
我没有正确定义某些类型,但不确定如何解决问题。
答案 0 :(得分:2)
你需要传递List而不是Object。
call.enqueue(new Callback<List<GitHubRepos>>() {
//override method.
});