将从文本文件加载的字符串转换为JavaScript中的数组对象

时间:2015-02-13 15:13:16

标签: javascript

我有以下对象

            {   
                    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);

遗憾的是没有任何事情发生。帮助赞赏!

1 个答案:

答案 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。