JSON.parse 方法解析纯数字键值对报错的解决方法

1.起因

一般json格式的key键都是字符串,但是今天碰到一个奇葩的json格式,键值是纯数字,,

 

这种用JSON.parse的原生方法解析的话会报错,因为这个方法是严格按照JSON格式进行解析的,看后端的写法是这样

 

 ,估计也没注意吧....真是带来了很多麻烦

 

2.解决

JSON解析除了JSON.parse还有另外一种方法,直接使用eval方法解析

eval('(' + response.data + ')')

这样解析的JSON就不会报错,虽然eval不推荐使用,因为效率没JSON高,而且会加载里面的JavaScript语句,但是碰上这种情况不得不用,还是要根据具体的情景来选择相应的技术解决.

然后代码的写法就是这个样子的

          let repData = response.data

          if (typeof repData === 'string') {
            repData = eval('(' + response.data + ')')
          }

如果axios请求后端返回的是对象的话,说明axios已经把数据解析成对象了,我们就不用做任何的处理了,如果不是对象,是字符串,说明传回来了那种奇葩格式,我们就需要判断一下,用eval解析.

 

posted @ 2020-12-21 21:29  随意的马蒂洛克  阅读(1435)  评论(0编辑  收藏  举报