json转换成对象时空串转换成了0

当从前端传入一个空字符串""到后端,自动映射到定义为int类型的对象属性时,该属性会被转换为0。在DTO中,alertLevelId初始设为-1,但接收前端传递的空字符串后,其值变为0。问题原因未明确。

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

问题概要:对象属性定义为int类型,利用@RequestBody自动转换成对象,从前端传递了一个空串""时,对象属性被转换成了0。

原因:不知。


具体如下:

前端传递的数据为


{alertLevelId: ""}


后端

DTO

public class AlertQueryInDTO extends BaseAuditDTO {

int alertLevelId = -1;


public int getAlertLevelId() {
    return alertLevelId;
}

public void setAlertLevelId(int alertLevelId) {
    this.alertLevelId = alertLevelId;
}
public void setAlertLevelId(String alertLevelId) {
    if(CommonUtils.notNullAndEmpty(alertLevelId))
    this.alertLevelId = Integer.parseInt(alertLevelId);
}
......
}



Resource

public ResponseDTO<List<AlertInfoDTO>> queryAlertInformations(@RequestBody AlertQueryInDTO alertDTO) {

断点    .....
}


进入断点的时候,发现alertLevelId是0,不知道原因.



 




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值