背景:
前端同事傳了兩個參數給後臺
前端參數 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>