有一次在项目里碰到雪花算法生成id,然后返回到前端。雪花算法会生成一个64位的二进制数据,为一个Long型。(转换成字符串后长度最多19)
我们后台返回的是Json的字符串,在axios内部会自动调用 JSON.parse()方法把json字符串转为JS数据,就会出现进度损失。如果不进行转换,依然当做字符串来使用,就不会有问题了
当然这是json字符串只有orderId的时候。
有时候,还有其他属性。
这个时候,我们的改造一下字符串。
ly.http.post("/order/order/list",this.pageInfo,{ transformResponse: [ function(data){ var newResponseString = data.replace(/\"orderId\":(\d+)/g,'"orderId": "$1"'); var resultObj = JSON.parse(newResponseString); return resultObj; } ] }).then(({data})=>{ this.totalPage= data.totalPage; this.total= data.total; this.orders=data.items; })