【问题标题】:com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 3 path $[0]com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: 预期 BEGIN_OBJECT 但在第 1 行第 3 列路径 $[0] 处为 BEGIN_ARRAY
【发布时间】:2020-05-20 08:53:19
【问题描述】:

我在调用 api 时遇到问题。谁能帮我解决异常。

   JSON FORMAT:
[
[
{“id”:”1”},
{“id”:”1”}
],[],[]
]

MODEL:
public List<Data> data;

 Public class Data{
@SerializedName("id")
public String id;
}

CALLING:
Call <List<IndividualListModel>> indiList(@Header("Authorization") String token);

【问题讨论】:

  • 错误消息解释了您的问题,您的 JSON 以“[”指示的数组开头,而不是开始对象标识符“{”,修复您的 JSON 字符串,然后 GSON 转换它应该没有问题.
  • @P.Leibner 无法更改 json 格式。请告诉我模型类和调用所需的更改

标签: android api gson retrofit2 pojo


【解决方案1】:

在根元素处,您收到的 JSON 没有List&lt;Data&gt;。它有List&lt;List&lt;Data&gt;&gt;,因为有一些数组,嵌套在另一个数组中:

[
  [
    {
      "id": "1"
    },
    {
      "id": "1"
    }
  ],
  [],
  []
]

【讨论】:

  • 对模型类 public List> 数据进行了更改;仍然得到同样的错误。我是否需要从 Call > 中删除列表
  • 通过改变 List>
猜你喜欢
  • 2020-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-10
  • 1970-01-01
  • 1970-01-01
  • 2018-09-19
  • 1970-01-01
相关资源
最近更新 更多