You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gson嵌套类反序列化报错,求无需完整反序列化的简便解法

Gson嵌套类反序列化报错的快速解决办法

1. 修复字段/类的访问权限

报错核心是Gson无法访问目标字段,按以下步骤排查:

  • 确保实体类为public:把GsOrgIds、GsOrgIdsData、GsOrgIdsResult三个类都加上public修饰符,否则Gson的反射机制无法跨包访问类成员。
  • JDK9+模块化项目需开放权限:如果用了module-info.java,添加如下配置允许Gson反射访问你的模块:
    opens gsapi to com.google.gson;
    
  • 配置Gson宽松访问规则:创建Gson实例时,用GsonBuilder规避权限限制(即使字段是public,也能解决部分环境下的反射问题):
    Gson gson = new GsonBuilder().create();
    GsOrgIds value = gson.fromJson(response, GsOrgIds.class);
    

2. 处理isDefault的类型映射

JSON里isDefault是数字1/0,实体类是boolean类型,Gson默认会自动把1转成true、0转成false。如果出现解析异常,可添加@SerializedName注解明确字段映射:

import com.google.gson.annotations.SerializedName;

public class GsOrgIdsResult {
    public long createTime;
    @SerializedName("isDefault")
    public boolean isDefault;
    public String description;
    public String organization;
    public int id;
}

结论:无需自定义完整反序列化逻辑

只要解决上述权限和类型映射问题,Gson就能自动完成嵌套JSON到实体类的解析,完全不用编写复杂的自定义反序列化代码。

内容的提问来源于stack exchange,提问作者Jeremy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 08:32:41