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

使用Gson无法将JSON字符串正确转换为FlwCashoutCallbackDto对象

问题原因及解决方案

核心问题

你用了Jackson的@JsonProperty注解映射JSON键名,但Gson并不识别这个注解,它只认自身的@SerializedName注解。这就是txRef、flwRef、Meta等属性无法被正确赋值的根本原因。

修复步骤

  • 将所有Java类中的@JsonProperty替换为Gson的@SerializedName注解,示例如下:
    // 原代码
    @JsonProperty("tx_ref")
    private String txRef;
    
    // 修改后
    @SerializedName("tx_ref")
    private String txRef;
    
  • 所有JSON键名与Java属性名不一致的字段,包括嵌套的Meta、Customer类中的字段,都要添加@SerializedName注解做映射。

额外检查项

  • 确保每个DTO类都有无参构造函数,Gson反射实例化对象时依赖无参构造:
    public FlwCashoutCallbackDto() {}
    public Data() {}
    public Meta() {}
    public Customer() {}
    
  • 核对注解中的字符串与JSON字段名完全一致,包括大小写、下划线等细节,比如JSON里是flw_ref,注解就不能写成flwRef。

验证代码

转换代码无需改动,但要确保导入正确的Gson注解:

import com.google.gson.annotations.SerializedName;

// 转换逻辑
FlwCashoutCallbackDto result = new Gson().fromJson(data, FlwCashoutCallbackDto.class);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 11:37:24