我有以下对象
{
value: 20,
color:"#878BB6"
},
{
value : 40,
color : "#4ACAB4"
}
从我在服务器的本地目录中的文本文件abc.txt加载。
我想将其转换为数组对象。我试着做了
var string = "{
value: 20,
color:"#878BB6"
},
{
value : 40,
color : "#4ACAB4"
}"
var array = JSON.parse("[" + string + "]");
alert(array);
遗憾的是没有任何事情发生。帮助赞赏!
答案 0 :(得分:2)
您可以使用“eval”来完成您的尝试。
var s = '{value: 20, color:"#878BB6" },' +
'{value : 40, color : "#4ACAB4"}';
var arr = eval('[' + s + ']');
alert(arr[0].value);
另外,为了让JSON.parse解析它,字符串需要是有效的JSON。所以你需要在对象属性名称周围加上引号。如下所示:
var s = '{"value": 20, "color":"#878BB6" },' +
'{"value": 40, "color": "#4ACAB4"}';
var arr2 = JSON.parse('[' + s + ']');
alert(arr2[1].value);
尽管如果可以的话,最好修改生成文本文件以包含有效JSON的过程。然后你可以使用jQuery或其他方法直接从文件中加载JSON。