Android 2/GSON无法转换为对象
我正在使用改型2对GoogleBooksAPI进行请求,并使用GSON转换器,但有一个错误 错误应为BEGIN_数组,但在第1行第2列路径处为BEGIN_对象 $ 这是我的 BookService.javaAndroid 2/GSON无法转换为对象,android,gson,retrofit,Android,Gson,Retrofit,我正在使用改型2对GoogleBooksAPI进行请求,并使用GSON转换器,但有一个错误 错误应为BEGIN_数组,但在第1行第2列路径处为BEGIN_对象 $ 这是我的 BookService.java 您得到的响应不是一个书籍数组,而是一个对象,它可能是一个包含书籍数组的响应。因此,错误说明:您的JsonResponse不是以[]开始的,而是以{}开始的。您的响应不是一个书籍数组,而是一个对象,它可能是一个包含书籍数组的响应。因此,错误说明:您的JsonResponse不是以[]开头,而
您得到的响应不是一个书籍数组,而是一个对象,它可能是一个包含书籍数组的响应。因此,错误说明:您的JsonResponse不是以
[]
开始的,而是以{}
开始的。您的响应不是一个书籍数组,而是一个对象,它可能是一个包含书籍数组的响应。因此,错误说明:您的JsonResponse不是以[]
开头,而是以{}
开头。您的响应不是数组。它是一个包含数组的对象
要解决此问题,您必须创建其他响应类,如BookResponse
BookResponse.java
公共类图书响应{
@序列化名称(“种类”)
私人毒刺类;
@SerializedName(“totalItems”)
私人物品;
@序列化名称(“项目”)
私人清单项目;
}
然后像这样改变你的界面
public interface BookApiService {
@GET("/books/v1/volumes")
Call<BookResponse> getBooks(@Query("q") String query);
}
公共接口服务{
@获取(“/books/v1/volumes”)
调用getBooks(@Query(“q”)字符串查询);
}
您的响应不是数组。它是一个包含数组的对象
要解决此问题,您必须创建其他响应类,如BookResponse
BookResponse.java
公共类图书响应{
@序列化名称(“种类”)
私人毒刺类;
@SerializedName(“totalItems”)
私人物品;
@序列化名称(“项目”)
私人清单项目;
}
然后像这样改变你的界面
public interface BookApiService {
@GET("/books/v1/volumes")
Call<BookResponse> getBooks(@Query("q") String query);
}
公共接口服务{
@获取(“/books/v1/volumes”)
调用getBooks(@Query(“q”)字符串查询);
}
public class MainActivity extends AppCompatActivity implements BookService.BookCallback {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main)
new BookService(this).getBooks("android");
}
}
public class BookResponse{
@SerializedName("kind")
private Sting kind;
@SerializedName("totalItems")
private Int totalItems;
@SerializedName("items")
private List<Book> items;
}
public interface BookApiService {
@GET("/books/v1/volumes")
Call<BookResponse> getBooks(@Query("q") String query);
}