首页 > 解决方案 > 在使用 Retrofit 和 GSON 进行解析时得到“预期 BEGIN_ARRAY 但在第 1 行第 1 列路径 $ 为字符串”

问题描述

在寻找了将近一天的答案之后,我仍然看不出我如何使用 Retrofit 和 GSON 进行 API 调用有什么问题。

我的 JSON 是这样的:

{"nombre_completo":"placeholder name","edad":"78","email":"2","genero":"1","nombre_pais":"Chile","img_perfil":"http:\/\/www.someurl.com\/imagenes\/1\/perfil\/perfilRecortada.jpg","grados":["FIGHT: 10\u00b0Dan","ANOTHER:Negro 3rd"]}

使用 JSONSCHEMA2POGO 或 SGSON 插件 POJO 类

private String nombre_completo;
private String edad;
private String email;
private String genero;
private String nombre_pais;
private String img_perfil;
private List<String> grados = null;

我的 GSON 和 Retrofit 实现为

private static Gson gson = new GsonBuilder()
        .setLenient()
        .create();
sRetrofit = new Retrofit.Builder()
                .baseUrl(URL_API)
                .addConverterFactory(GsonConverterFactory.create(gson))
                .build();

并且使用来自 Retrofit 的异步调用,我仍然得到错误。

如果您能帮我解决这个问题,我将不胜感激。

标签: androidretrofit2gson

解决方案


看起来这与您正在测试的数据的格式有关。似乎 gson 需要一个对象数组,但您只是给它一个对象。尝试将您的测试数据用方括号括起来。有关此错误的更多信息位于:https ://github.com/google/gson/issues/966


推荐阅读