前端日常踩坑(接口返回的json数据无法转换成数组)

本文记录了一位前端开发者在对接接口时遇到的困境:从后端接收到的JSON数据无法直接转换为数组,原因在于数据中包含null值。通过对数据的逐项比对,发现问题在于null值的存在导致转换失败。解决方法是使用正则表达式替换所有null为空字符串,然后使用JSON.parse()成功转换成数组。作者希望此经验能对他人有所帮助。
摘要由CSDN通过智能技术生成

今天对接口时遇到了个问题,就是后端将数据通过json方式传输到前端时,前端也拿到了数据如下:
在这里插入图片描述
但是这个时候就出现了问题,我发现无法将数据转换成数组,刚开始以为是反斜杠的问题,也做过尝试,结果还是没有解决。让我都开始怀疑是不是JSON.parse()的问题了,然后自己创建了一个数组转成JSON字符串与获取到的值一一比对也没发现啥问题。创建的数组及字符串如下:
在这里插入图片描述
实在没法,我就把上面的datas里面的数据也放到一个字符串中和arr1进行比对,最后选择了几个参数作为一个新的字符串:这三个参数的类型不相同。
在这里插入图片描述
经过一对一的比对终于发现了问题的所在:存在null的json字符串无法转成数组。

解决办法:通过let newstr=str.replace(a,‘b’);将所有的null转换成空字符串(如果需要null也可以转换成null字符串),这里说一下replace的参数,str(转换前的字符串/需要转换的字符串),括号里面分为两个参数,其中a(需要替换的参数)、b替换成的参数。如果a不加全局的g的话就只替换一个,所以这里要使

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值