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

时间:2016-01-07 08:34:55

标签: javascript jquery arrays json object

使用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}]

enter image description here

怎么做?

4 个答案:

答案 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, "\"$&\""));
});