1. 程式人生 > >後臺返回數據是字符串,可是轉換總是報錯

後臺返回數據是字符串,可是轉換總是報錯

bubuko ray eight 和數 mbo val volume value 循環

後臺返回字符串(字符串由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]+"}" + ")" ))
            }
          }

這是正常流程代碼 也可以了 ,奇怪呀 ,有人知道的嗎 請留言 謝謝 瀏覽器是谷歌

後臺返回數據是字符串,可是轉換總是報錯