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

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

Linda Hamilton
Linda Hamilton原创
2025-01-01 01:25:10770浏览

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn