为什么我得到 Expected BEGIN_ARRAY 但在第 1 行第 1 列路径 $ 处是 STRING

why am I getting Expected BEGIN_ARRAY but was STRING at line 1 column 1 path $

我有这个电话

@Headers("Content-Type: application/json")
@GET("/allMovies/allMovies.txt")
Call<List<Movies>> getAllMovies();

和这个json

{
movies: [
{
id: "1000",
name: "Suicide Squad",
year: "2016",
category: "action",
},]}

使用此模型:

public class 电影 {

private String id;
private String name;
private  String year;
private String category;

为什么我得到

Expected BEGIN_ARRAY but was STRING at line 1 column 1 path $

如果您查看请求的响应,您会发现它 return 不仅仅是 电影列表 ,而是 一个包含电影列表的对象 。所以,基本上,您需要像这样创建一个 class:

class MoviesListResponse {
    private List<Movie> movies;
}

并将其用作您请求的 return 类型。