このエラーが発生するたびに発生します:begin_arrayが必要ですが、begin_objectでしたレトロフィットにデシリアライザーまたはワーパークラスを追加する必要があるかどうかはわかりませんが、自分に合うように簡単な方法でそれを行う方法がわかりません私のすべてのプロジェクトに対するapijsonの応答、これが私のレトロフィットコードです:
-
私のJson:
{
categoryDetails: [
{
id: "1",
categoryName: "Fashion"
},
{
id: "2",
categoryName: "Pets"
},
{
id: "3",
categoryName: "Sports"
},
{
id: "4",
categoryName: "Autre1"
},
{
id: "5",
categoryName: "Autre2"
}
]
}
私のソースコード
import java.util.List;
import java.io.IOException;
import java.util.List;
import android.util.Log;
import retrofit.Call;
import retrofit.GsonConverterFactory;
import retrofit.Retrofit;
import retrofit.http.GET;
import retrofit.http.Path;
public class GitHubClient {
public static final String API_URL = "http://192.168.1.22";
public static class Category {
public final String categoryName;
public final int id;
public Category(String categoryName, int id) {
this.categoryName = categoryName;
this.id = id;
}
}
/*-----------------------------------------------------------------------------------------------------------*/
public interface QampaAPI {
@GET("/api/category")
Call<List<Category>> categoryDetailss();
}
/*-----------------------------------------------------------------------------------------------------------*/
public static void main(String... args) throws IOException {
Log.w("retrofit","main()");
// Create a very simple REST adapter which points the GitHub API.
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(API_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
// Create an instance of our GitHub API interface.
QampaAPI apiCall = retrofit.create(QampaAPI.class);
// Create a call instance for looking up Retrofit categoryDetailss.
Call<List<Category>> call = apiCall.categoryDetailss();
// Fetch and print a list of the categoryDetailss to the library.
List<Category> Categorys = call.execute().body();
for (Category Category : Categorys) {
Log.w("retrofit",Category.categoryName + " (" + Category.id + ")");
}
}
}
エラー状態に従って、JSON応答が作成したクラスと一致しません。POJOクラスをフォローしてみてください
public static class Category {
public final List<CatergoryItem> categoryItem;
public Category(List<CategoryItem> item) {
this.categoryItem = item;
}
}
class CategoryItem{
public String categoryName;
public int id;
//getter..setter
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加