1.近期在项目中要根据工号查询一些数据,但是我们数据库中的数据比如说是000001这种的,在swagger上传递的时候,接收的时候就变成了了1,前面的0自动被省略掉了,很是奇怪。
2.在Java中,如果用long,int或者是Long,Integer声明一个变量,赋值为0开头的数字,最后你输出一下都会转换为8进制的数字。
比较上述两种场景,swagger中如果传递0开头的数字,自己把开头的0给你去掉了,应该是为了避免出现这种传递的参数出现自动8进制转化的问题,但是还是会把原始的数字000001改为1进行传递,所以我们在使用swagger的时候如果要传递0开头的数字,最好是数据类型改为string,之后在后台判断一下是否为纯数字,验证通过之后进行crud。
如果定义了long,int,Long,Integer,并且修改的地方非常多,只有极个别场景会出现这种情况的话,建议对数据进行左边补0的方式来操作数据,但是这个会有一个问题,该补几个0才是你所需要的数据。
swagger和Java Long数据传递的一些问题
最新推荐文章于 2022-07-22 14:16:14 发布