JavaScript获取后端json数据eval转换报错问题解决方法

通过ajax或者axios获取后端text形式json数据时,在使用前,需要转换成js的对象,有2种方法:

一、使用JSON.parse来回转换,会经常报错,不推荐。

二、使用eval强制转换。会偶尔报错。

1、当数据是{}形式,可能就报错了,解决办法是,在字符外包裹()小括号来解决;

2、当数据里面有换行符时,上面加小括号的方法也不适用,就需要对字符串进行处理,如下:

eval("(" + res.data.replace(/\n/g,'') + ")");

至此,问题完美解决!

补充,再次出现报错:.replace is not a function at ,应该市data此时又是对象了

3、此时在对data做toString处理。

当能正常解析的时候,用上述方法也报错,需要对返回的结果做是否对象的判断,然后在做字符处理,最终的处理逻辑如下:

this.$http.get(url,{params:{page:this.page,limit:10}}).then(function(res){
  console.log(res.data);
  if((res.data instanceof Object) && (res.data.code==0)){
    this.tableData=res.data.data;
    this.count=res.data.count;
  }else{
    console.log('出现异常');
    let list = eval("(" + res.data.replace(/\r\n/g,'').replace(/\n/g,'') + ")");
    this.tableData = list.data;
    this.count = list.count;
  }
  console.log("success")
}.bind(this)).catch(function(e){
  console.log(e)
})

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值