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

Convert string loaded from text file to an array object in JavaScript

本文关键字:JavaScript 对象 数组 转换 字符串 文本 文件 加载      更新时间:2023-10-28

我有以下对象

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

不幸的是什么都没发生。感谢帮助!

您可以使用"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。