后台返回字符串(字符串由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