0
私はフォーラムでトピックのリストを取得するために私が照会するサーバーを持っています。ここでは、すべてのJSONObject
JSON配列をサーバーAPIリクエストからretrofit2のオブジェクトに変換する
[
{
"id": 728,
"date": "2016-01-01T13:01:51",
"date_gmt": "2016-01-01T07:31:51",
....
},
{
"id": 556,
"date": "2015-06-07T21:16:59",
"date_gmt": "2015-06-07T15:46:59",
....
},
{
"id": 554,
"date": "2015-06-07T21:16:28",
"date_gmt": "2015-06-07T15:46:28",
....
}
]
がフォーラムトピックに関するデータである - curl
経由で返されたデータは、このようなものです。
{
"id": 554,
"date": "2015-06-07T21:16:28",
"date_gmt": "2015-06-07T15:46:28",
....
}
私は、AndroidアプリでListView
で、このデータを表示したいです。
しかし、ListView
のオブジェクトを作成するのにretrofit2
とgson
を使用しているので、私がいつも得る応答はNot Found
です。
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(ENDPOINT)
.addConverterFactory(buildGsonConverter())
.build();
serverAPI = retrofit.create(ServerAPI.class);
private Converter.Factory buildGsonConverter() {
return GsonConverterFactory.create();
}
Call<List<Forum>> call = App.serverAPI.getListOfForums();
call.enqueue(new Callback<List<Forum>>() {
@Override
public void onResponse(Call<List<Forum>> call, Response<List<Forum>> response) {
Log.i(TAG, "onResponse: " + (null != response.message() ? response.message() : ""));
Log.i(TAG, "response body - " + (null != response.body() ? response.body() : ""));
if (response.isSuccessful()) {
adapter.setForums(response.body());
adapter.notifyDataSetChanged();
}
}
@Override
public void onFailure(Call<List<Forum>> call, Throwable t) {
Log.i(TAG, "onFailure: " + t.toString());
Log.i(TAG, "onFailure: " + t.getMessage());
}
});
ServerAPI.class -
@GET("/forum/")
Call<List<Forum>> getListOfForums();
今のところ返されたJSON
を逆シリアル化するときは何もしません。 JsonDeserializer
を使用しても、どうすればList<Forum>
を簡単に取り込むことができますか?