首页 > Java > java教程 > 为什么 GSON 在解析 JSON 数组时会抛出'Expected BEGIN_OBJECT but was BEGIN_ARRAY”?

为什么 GSON 在解析 JSON 数组时会抛出'Expected BEGIN_OBJECT but was BEGIN_ARRAY”?

Linda Hamilton
发布: 2025-01-01 01:25:10
原创
758 人浏览过

Why Does GSON Throw

预期为 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板