首页 > 其他 > 详细

后台返回数据是字符串,可是转换总是报错

时间:2019-03-25 14:20:19      阅读:272      评论:0      收藏:0      [点我收藏+]

后台返回字符串(字符串由arr[ { key:value } ] 组成),用了很多种方法 最终解决了

1 var str="[{symbol:"sh000001",name:"上证指数",trade:"3074.9448",pricechange:"-29.204",changepercent:"-0.941",buy:"0",sell:"0",settlement:"3104.1487",open:"3058.8016",high:"3086.9961",low:"3051.5766",volume:259658612,amount:255833986566,code:"000001",ticktime:"13:33:04"}]"
2 // 1.先转换数组
3 var arr1=str.split(‘},‘);

技术分享图片

//2.去掉数组中的下标为0 和数组最后一个 : ‘[’  和  ‘]’
arr1[0]=arr1[0].replace(‘[‘,‘‘);
arr1[arr1.length-1]=arr1[arr1.length-1].replace(‘]‘,‘‘);

//循环数组 只有一个eval会报错 未解
for(var i in arr1){
if(i<arr1.length-1){
_this.myArray.push(eval("(" +eval("(" +JSON.stringify(arr1[i]+"}") + ")" )+ ")" ))
}
}

技术分享图片

就在我重新走一遍的过程中 只有一个 eval 又不报错了 

 var arr1=data.split(‘},‘);
          arr1[arr1.length-1]=arr1[arr1.length-1].replace(‘]‘,‘‘);
          arr1[0]=arr1[0].replace(‘[‘,‘‘);

          for(var i in arr1){
            if(i<arr1.length-1){
              _this.myArray.push( eval("(" +arr1[i]+"}" + ")" ))
            }
          }

这是正常流程代码 也可以了  ,奇怪呀 ,有人知道的吗 请留言 谢谢 浏览器是谷歌

 

后台返回数据是字符串,可是转换总是报错

原文:https://www.cnblogs.com/BSY-725/p/10593353.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!