将数组转换为js中Jsondata对象的对象

使用Javascript或jQuery将Array-String转换为Object

这是我的arrays

data=["{X:7,Y:12.5}", "{X:8,Y:15}", "{X:9,Y:12.5}"] 

预期产出是对象

 data=[{X:7,Y:12.5},{X:8,Y:15},{X:9,Y:12.5}] 

在此处输入图像描述

怎么做?

试试这个:

 data = ["{X:7,Y:12.5}", "{X:8,Y:15}", "{X:9,Y:12.5}"]; data = data.join(','); data = data.replace(/X/g,'"X"'); data = data.replace(/Y/g,'"Y"'); data = JSON.parse("["+data+"]"); 

只需将数组转换为字符串并进行清理,即可将其解析为json。

你可以尝试这样的事情:

 var data=["{X:7,Y:12.5}", "{X:8,Y:15}", "{X:9,Y:12.5}"]; data = data.map(function(item){ item = item.replace(/{/g, "{\""); item = item.replace(/}/g, "\"}"); item = item.replace(/:/g, "\":\""); item = item.replace(/,/g, "\",\""); return JSON.parse(item); }) console.log(data) 
 var reg = /[^{,]+?(?=:)/g; var data = ["{X:7,Y:12.5}", "{X:8,Y:15}", "{X:9,Y:12.5}"]; data = data.map(function(item){ return JSON.parse(item.replace(reg, "\"$&\"")); }); 

简单的解决方案是用“X”和“Y”代替X和Y. 为了创建一个可以解析为JSON的字符串键。

 data=["{X:7,Y:12.5}", "{X:8,Y:15}", "{X:9,Y:12.5}"] for(var i in data){ tmp = data[i].replace("X",'"X"').replace('Y','"Y"') data[i] = JSON.parse(tmp) } 

请享用。