【问题标题】:java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 4130java.lang.IllegalStateException:应为 BEGIN_ARRAY,但在第 1 行第 4130 列是 BEGIN_OBJECT
【发布时间】:2017-11-14 21:27:04
【问题描述】:

我有以下 json:(我在一个名为位置的对象中看到了一张地图) 我进行了 gson 调用以将其转换为带有地图的对象。 也许我看到 json 错误。 我做错了什么?

{
  "locations": {
    "0": {
      "locationNo": "10014",
      "inventoryLocationNo": "10014"
    },
    "1": {
      "locationNo": "10022",
      "inventoryLocationNo": "10022"
    },
    "2": {
      "locationNo": "10030",
      "inventoryLocationNo": "10030"
    },
 },
  "errors": {}
}

这是我的代码

我在拨打这个电话时遇到了异常:

BATOLocationIDAPIResponse responseObject = gson.fromJson(container.body, BATOLocationIDAPIResponse.class);

这是我的代码

/**
 * POJO that represents the response wrapper for a Location API call.
 *
 */
public class BATOLocationIDAPIResponse {
    private BATOLocationContainer locations;
    private List<String> errors;
    }
    public List<String> getErrors() {
        return errors;
    }
    public class BATOLocationContainer {
        private Map<String, BATOAPILocation> locations;
     }
}
// Location object
    public class BATOAPILocation {
        public String locationNo;
        public String inventoryLocationNo;
     }

【问题讨论】:

  • 您在响应对象中将错误定义为字符串列表,但在响应中,错误是一个映射

标签: json gson


【解决方案1】:

你有private List&lt;String&gt; errors;,但你的JSON显示"errors": {}这应该是一个像"errors": []这样的数组

【讨论】:

  • 感谢您的回复。这对我帮助很大。不知何故,我更加关注具有实际数据的部分。
  • 不客气。如果答案对您有所帮助,如果您将此答案标记为已接受,我会很高兴;-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-02
  • 2016-07-12
  • 2018-07-28
  • 2021-04-28
  • 2022-11-25
  • 1970-01-01
相关资源
最近更新 更多