vue项目,long类型精度丢失

在处理从后端获取的JSON数据时,前端发现Long类型的ID出现精度丢失。通过与后端协作,将ID以JSON字符串形式返回。前端使用一系列字符串替换方法转换JSON格式,然后用JSON.parse()解析,成功获取完整ID。具体转换包括替换冒号、逗号、花括号等,以及处理特殊数字格式。

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

让后端返回JSON格式如下:

"data":"[{\"addr\":\"*****-B15栋\",\"address\":\"*****-B1栋\",\"area\":\"集美区\",\"authentication\":1,\"avatar\":\"https://westar-13********.cos.ap-nanjing.myqcloud.com/android/verify/1660291948673693.jpeg\",\"bizNo\":\"22081212\",\"cid\":154522558561647483,\"city\":\"**市\",\"contractStatus\":0,\"createTime\":\"2022-07-14 13:46:28\",\"ddId\":\"2005761244-11675320799\",\"deliveryMode\":0,\"distance\":0,\"endTime\":\"00:00:00\",\"exhibition\":\"https://westar-130*******.cos.ap-nanjing.myqcloud.com/android/verify/1660291959008736.jpeg\",\"fabulous\":0,\"fnId\":\"213663547\",\"foodSafetyLicence\":\"https://westar-1303083093.cos.ap-nanjing.myqcloud.com/android/verify/1660286680329591.jpeg\",\"handheldLicencePic\":\"https://westar-130******.cos.ap-nanjing.myqcloud.com/android/verify/1660286659940152.jpeg\",\"id\":15586615477497516074,\"industry\":4,\"industryName\":\"西餐\",\"introduce\":\"诚信经营,:133********\",\"isAudit\":1,\"lat\":24.620577,\"lng\":118.050019,\"member\":1,\"name\":\"厦门***\",\"nike\":\"饮品\",\"phone\":\"153*****\",\"province\":\"0\",\"sales\":0,\"ssId\":\"4010160\",\"startTime\":\"17:00:00\",\"starting\":3.00,\"status\":2,\"topic\":\"0\",\"updateTime\":\"2022-10-29 18:59:48\"},

前面一个后端做了该功能块,然后离职了,后面我们前端做到这里来,发现id长度很长,PC端导致精度丢失不齐,百度了很多方法,都没明确效果,最后跟现有后端一起讨论用了以下方法:

因为JSON字符串类型不会精度丢失,所以后端返回了JSON格式,

前端用了replaceAll转换了一下格式后 最后用JSON.parse(str3)拿到了最终的id

接口请求成功后。在里面转换一下 

if (res.code === 0) {

   var str3 = res.data;

           

str3 = str3.replaceAll(":", ":\"");

            str3 = str3.replaceAll(",\"", "\",\"");

            str3 = str3.replaceAll("}", "\"}");

            str3 = str3.replaceAll("\"\"", "\"");

            str3 = str3.replaceAll(":\"//", "://");

            str3 = str3.replace(/ (\d+):"(\d+):"(\d+)/g, " $1:$2:$3")

            str3 = str3.replace(/(\d+):"(\d+):"(\d+)/g, "$1:$2:$3")

            str3 = str3.replace(/}"/g, "}")

            str3 = str3.replace(/}"/g, "}")

            str3 = str3.replaceAll("\",http", ",http")

            str3 = str3.replaceAll(":\"{", ":{")

            str3 = str3.replaceAll(":\"[", ":[")

            str3 = str3.replaceAll("]\"", "]")

            str3 = str3.replaceAll("]\"", "]")

            str3 = str3.replaceAll(":[", ":\"[")

            str3 = str3.replaceAll(":\"[{", ":[{")

            str3 = str3.replaceAll("[],", "[]\",")

            let goodsinfodata = JSON.parse(str3)

            // console.log(goodsinfodata)

        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值