预期为 BEGIN_OBJECT,但使用 GSON 时为 BEGIN_ARRAY
尝试使用 GSON 将包含对象数组的 JSON 字符串解析为对象列表时,“预期为 BEGIN_OBJECT 但为 BEGIN_ARRAY”的问题出现。发生这种情况是因为 GSON 预期解析单个对象,但却遇到对象数组。
要解决此问题,正确的方法是指定预期的数据结构是对象数组。这可以通过修改代码来实现,如下所示:
ChannelSearchEnum[] enums = gson.fromJson(yourJson, ChannelSearchEnum[].class);
或者,为了获得更大的灵活性,您可以使用以下代码:
Type collectionType = new TypeToken<Collection<ChannelSearchEnum>>(){}.getType(); Collection<ChannelSearchEnum> enums = gson.fromJson(yourJson, collectionType);
以上是为什么 GSON 在解析 JSON 数组时会抛出'Expected BEGIN_OBJECT but was BEGIN_ARRAY”?的详细内容。更多信息请关注PHP中文网其他相关文章!