私はJSON
を取得し、Retrofit 2.1を使用してArrayList<Manager>
に解析しようとしています。Retrofit 2.1を使用してJSONからリストを取得
私は、GET
リクエストとインタフェースを作成し、Retrofitも初期化しました。
なぜresponse.isSuccessful()
がfalseですか?
{
"managers":
[
{"name": "John Smith", "plan": "100"},
{"name": "Alex Sprite", "plan": "96"},
{"name": "Den Bollom", "plan": "2"},
{"name": "Jaromir Jagr", "plan": "68"},
{"name": "Wane Gretzky", "plan": "99"},
{"name": "Winsent Trade", "plan": "54"},
{"name": "Paul Dagger", "plan": "30"},
{"name": "Tommy Gun", "plan": "60"},
{"name": "Luc Perry", "plan": "15"},
{"name": "Tend Smarr", "plan": "64"}
]
}
インタフェースManagerAPI:
public interface ManagerAPI {
String URL = "https://api.myjson.com/bins/get/";
@GET("xkyz.json")
Call <List<Manager>> getManagers();
}
POJOクラス:
public class Manager {
@SerializedName("managers")
private ArrayList<Manager> managers;
public ArrayList<Manager> getManagers() {
return managers;
}
public void setManagers(ArrayList<Manager> managers) {
this.managers = managers;
}
public Manager() {
}
String name;
int plan;
public Manager(String name, int plan) {
this.name = name;
this.plan = plan;
}
public String getName()
{
return name;
}
public int getPlan() {
return plan;
}
}
InitRetrofit:
private void requestData() {
Retrofit retrofit = getRetrofit();
ManagerAPI service = retrofit.create(ManagerAPI.class);
Call<List<Manager>> call = service.getManagers();
call.enqueue(new Callback<List<Manager>>() {
@Override
public void onResponse(Call<List<Manager>> call, Response<List<Manager>> response) {
Log.e("OnResponce", "OK");
if (response.isSuccessful()){
List<Manager> managers = response.body();
}
else Log.e("Response", "Not ok");
}
@Override
public void onFailure(Call<List<Manager>> call, Throwable t) {
Log.e("OnFailure", "Fail");
}
});
}
@NonNull
private Retrofit getRetrofit() {
return new Retrofit.Builder()
.baseUrl(ManagerAPI.URL)
.addConverterFactory(JacksonConverterFactory.create())
.build();
}
LOG:
07-13 20:43:34.762 5402-5402/ru.alexbykov.jsonexample E/OnResponce: OK
07-13 20:43:34.762 5402-5402/ru.alexbykov.jsonexample E/Response Successful?: NO
07-13 20:43:34.762 5402-5402/ru.alexbykov.jsonexample E/response.message: Not Found
07-13 20:43:34.762 5402-5402/ru.alexbykov.jsonexample E/response.message: 404
07-13 20:43:34.762 5402-5402/ru.alexbykov.jsonexample E/response.message: null
07-13 20:43:34.978 5402-5469/ru.alexbykov.jsonexample E/Surface: getSlotFromBufferLocked: unknown buffer: 0xa9fd21c0
あなたのログ猫を見て、ここに貼り付けることはできますか?最新のものはエラーを教えてくれるはずです – Vasilisfoo
@Vasilisfoo done –
@newewsあなたは何か間違いを確認していますか?更新手続きの使用方法を教えてください。あなたの質問は私には分かりません。 – Soham