如何在js中转换为数组?

时间:2013-12-04 01:07:00

标签: javascript arrays

我有这个字符串,我想将其转换为数组:

var test = "{href:'one'},{href:'two'}";

那么如何将其转换为数组?:

var new = [{href:'one'},{href:'two'}];

4 个答案:

答案 0 :(得分:3)

这取决于你从哪里得到它..

如果可能的话,你应该纠正它以使其成为有效的JSON语法(至少在引号方面

var test  = '{"href":"one"},{"href":"two"}';
var arr = JSON.parse('[' + test + ']');

注意键和值周围的"

直接制作var test = '[{"href":"one"},{"href":"two"}]';甚至更好

答案 1 :(得分:1)

如果你可以将原始字符串修改为有效的JSON,那么你可以这样做:

JSON.parse(test)

有效的JSON:

var test  = '[{"href":"one"},{"href":"two"}]';

答案 2 :(得分:1)

如果将字符串更改为有效JSON不是一个选项,并且您完全信任此字符串及其来源,那么我将使用eval:

var test = "{href:'one'},{href:'two'}";
var arr = eval("[" + test + "]");

在最后一点上,请注意,如果此字符串来自用户,则他们可能会传入eval将很乐意执行的恶意代码。

作为一个非常简单的例子,请考虑这个

var test = "(function(){ window.jQuery = undefined; })()";
var arr = eval("[" + test + "]");

Bam,jQuery被淘汰了。

展示here

答案 3 :(得分:1)

使用jQuery:

var str = '{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}';
var jsonObj = $.parseJSON('[' + str + ']');

jsonObj是你的JSON对象。