alibaba fastjson 1.2.47 相似key 字符串格式化 对象 bug解决

前端传参至后端时,因FastJSON版本过低导致相同名称前带下划线的属性覆盖原有属性值。升级至1.2.58版本后,问题得以解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:

前端同事传了两个参数给后台

前端参数 json 

{
	"taskSheet": {
		"taskType": "SS,40288c566a4d8ffa016a4dffe156000e",
		"_taskType": ["SS", "40288c566a4d8ffa016a4dffe156000e"]
	}
}

后端接收实体类方式

taskSheet 对象只有taskType 属性 ,无_taskType

在controller 打印出来发现 taskType 的置是前端 _taskType的值 

后端输出的值

taskType: ["SS","40288c566a4d8ffa016a4dffe156000e"]

 

我猜想 会不会 字符串格式化为对象时,是把 _taskType 和taskType 认为是同一个属性 ,_taskType 的值把 taskType的值 覆盖了

把前端参数 json  换一个位置

{
	"taskSheet": {
		"_taskType": ["SS", "40288c566a4d8ffa016a4dffe156000e"],
		"taskType": "SS,40288c566a4d8ffa016a4dffe156000e"
	}
}

后端输出的值

taskType: "SS","40288c566a4d8ffa016a4dffe156000e"

果然是覆盖了

 

解决方案:

把 1.2.47 升级最新版1.2.58即可,maven 坐标

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.58</version>
        </dependency>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值