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

使用GSON解析JSON时fssp字段未被填充返回null的原因及修复方案

问题原因与修复方案

可能的原因

  • 缺少无参构造函数:Fssp 或 FsspDTO 类没有提供public的无参构造方法。Gson解析时需要通过无参构造实例化对象,如果缺失会导致对应字段无法赋值,最终返回null。
  • 缺失getter/setter方法:你贴出的实体类代码只展示了字段定义,未提供对应字段的getter、setter方法。部分场景下Gson反射访问私有字段受限,需要通过get/set方法完成赋值。
  • Gson配置与@Expose注解不匹配:如果你在构建Gson实例时使用了excludeFieldsWithoutExposeAnnotation()配置,你当前的字段已经加了@Expose注解是符合要求的,但如果反过来你生成实体类时@Expose的serialize/deserialize属性被设为false,也会导致字段被跳过解析。
  • 待解析JSON内容不符:你传入解析的stringJSON.get(2)可能不是你贴出的包含fssp字段的JSON片段,索引取值错误拿到了其他无fssp字段的内容也会导致该字段为null。
  • Fssp类定义不完整:你贴出的Fssp类代码末尾未闭合,若实际代码中类定义错误、字段拼写错误也会导致解析失败。

修复方案

  1. 给Fssp和FsspDTO类都添加public无参构造函数,如果是用jsonschema2pojo生成,可以在生成配置中开启生成无参构造的选项。
  2. 为所有字段添加对应的getter、setter方法,jsonschema2pojo默认生成的实体类是自带get/set的,如果你手动删除了可以补回,或者在IDE中用快捷键自动生成。
  3. 先打印确认待解析的JSON内容是否正确:
System.out.println("待解析JSON内容:" + stringJSON.get(2));
  1. 如果使用了GsonBuilder自定义配置,确保没有添加过滤fssp字段的规则,如果你需要让@Expose注解生效,构建Gson的代码改为:
Gson gson = new GsonBuilder()
        .excludeFieldsWithoutExposeAnnotation()
        .create();
  1. 检查Fssp类的完整定义,确保类正常闭合,所有注解拼写正确,没有语法错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 15:15:07