使用Javascript或jQuery将Array-String转换为Object
这是我的数组
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}]
怎么做?
答案 0 :(得分:1)
您可以尝试这样的事情:
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)
答案 1 :(得分:0)
试试这个:
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。
答案 2 :(得分:0)
简单的解决方案是用" X"替换X和Y. &安培; " Y&#34 ;.为了创建一个可以解析为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)
}
享受。
答案 3 :(得分:0)
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, "\"$&\""));
});