解決しました!以下の回答を確認してください
GitHubリポジトリを使用していますが、ユーザーのリポジトリの名前にアクセスしたいと考えています。JSONは次のようになります。
[
{
"id": 55848012,
"name": "Android",
"full_name": "VyaraGGeorgieva/Android"
...
...
}
]
レポクラスがあります
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()メソッドにアクセスできません。
一部のタイプを正しく定義していませんが、問題を解決する方法がわかりません。
Objectの代わりにListを渡す必要があります。
call.enqueue(new Callback<List<GitHubRepos>>() {
//override method.
});
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加