我得到了预期的BEGIN_ARRAY,但是在使用Android中的Retrofit(java)尝试获取json时,在第1行第2列路径$中是BEGIN_OBJECT

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我得到了预期的BEGIN_ARRAY,但是在使用Android中的Retrofit(java)尝试获取json时,在第1行第2列路径$中是BEGIN_OBJECT相关的知识,希望对你有一定的参考价值。

API链接:https://raw.githubusercontent.com/iranjith4/radius-intern-mobile/master/users.json

my API interface :

public interface Api {

String BASE_URL = "https://raw.githubusercontent.com/iranjith4/radius-intern-mobile/master/";

    @GET("users.json")
    Call<List<UserModel>> getUsers();
}

答案

JSON返回一个对象,而不是一个数组。第一个角色是{,而不是[

您需要创建一个具有results字段的Java类,该字段是您的List<UserModel>,并在您的Retrofit API的返回值中使用该Java类。这将匹配JSON,它有一个results列表,我假设是你想从这个JSON得到的。

例如,您可能有:

public class UserResponse {
  List<UserModel> results;
}

和:

@GET("users.json")
Call<UserResponse> getUserResponse();

以上是关于我得到了预期的BEGIN_ARRAY,但是在使用Android中的Retrofit(java)尝试获取json时,在第1行第2列路径$中是BEGIN_OBJECT的主要内容,如果未能解决你的问题,请参考以下文章

java.lang.illegalstateException:预期BEGIN_OBJECT但是BEGIN_ARRAY Retrofit

快速 API 错误:预期 BEGIN_ARRAY 但 BEGIN_OBJECT 在第 1 行第 2 列 PATH $ 通过使用改造

改造预期为 BEGIN_OBJECT,但为 BEGIN_ARRAY

Android:得到响应“200 ok”但改造失败

预期为BEGIN_ARRAY,但被BEGIN_OBJECT进行了翻新

更改我的程序接受文件的方式将从GSON创建此错误:预期BEGIN_ARRAY但在第1行第2列路径$ BEGIN_OBJECT?