Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 2/GSON无法转换为对象_Android_Gson_Retrofit - Fatal编程技术网

Android 2/GSON无法转换为对象

Android 2/GSON无法转换为对象,android,gson,retrofit,Android,Gson,Retrofit,我正在使用改型2对GoogleBooksAPI进行请求,并使用GSON转换器,但有一个错误 错误应为BEGIN_数组,但在第1行第2列路径处为BEGIN_对象 $ 这是我的 BookService.java 您得到的响应不是一个书籍数组,而是一个对象,它可能是一个包含书籍数组的响应。因此,错误说明:您的JsonResponse不是以[]开始的,而是以{}开始的。您的响应不是一个书籍数组,而是一个对象,它可能是一个包含书籍数组的响应。因此,错误说明:您的JsonResponse不是以[]开头,而

我正在使用改型2对GoogleBooksAPI进行请求,并使用GSON转换器,但有一个错误

错误应为BEGIN_数组,但在第1行第2列路径处为BEGIN_对象 $

这是我的

BookService.java


您得到的响应不是一个书籍数组,而是一个对象,它可能是一个包含书籍数组的响应。因此,错误说明:您的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);
}