使用 GSON 解码嵌套数据结构
提供的 JSON 数据表示一个对象数组,而解码代码预期的是单个对象ChannelSearchEnum 类。这种不匹配会导致“预期是 BEGIN_OBJECT,但实际上是 BEGIN_ARRAY”异常。
要解决此问题,需要修改解码方法以处理对象数组。一种合适的方法是将 TypeToken 类与 fromJson 方法结合使用。
Type collectionType = new TypeToken<Collection<ChannelSearchEnum>>(){}.getType(); Collection<ChannelSearchEnum> enums = gson.fromJson(json, collectionType);
此代码为 ChannelSearchEnum 对象的集合创建类型令牌,然后在反序列化期间使用它来指定所需的类型。因此,GSON 将正确解析 JSON 数组并填充包含各个 ChannelSearchEnum 实例的 Collection。
以上是如何使用 GSON 将 JSON 数组解码为对象集合?的详细内容。更多信息请关注PHP中文网其他相关文章!