将数组转换为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) }
请享用。