Javascript 如何在js中转换为数组?

Javascript 如何在js中转换为数组?,javascript,arrays,Javascript,Arrays,我有一个要转换为数组的字符串: var test = "{href:'one'},{href:'two'}"; 那么如何将其转换为数组呢 var new = [{href:'one'},{href:'two'}]; 这取决于你从哪里得到的 若可能的话,您应该对它进行一些修改,使其至少在引号方面成为有效的JSON语法 请注意关键点和值周围的标记 直接进行var测试='[{href:one},{href:two}]';甚至更好这取决于你从哪里得到的 若可能的话,您应该对它进行一些修改,使其至少在

我有一个要转换为数组的字符串:

var test = "{href:'one'},{href:'two'}";
那么如何将其转换为数组呢

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

这取决于你从哪里得到的

若可能的话,您应该对它进行一些修改,使其至少在引号方面成为有效的JSON语法

请注意关键点和值周围的标记


直接进行var测试='[{href:one},{href:two}]';甚至更好

这取决于你从哪里得到的

若可能的话,您应该对它进行一些修改,使其至少在引号方面成为有效的JSON语法

请注意关键点和值周围的标记


直接进行var测试='[{href:one},{href:two}]';更好的是

如果可以将原始字符串修改为有效的JSON,则可以执行以下操作:

JSON.parse(test)
有效的JSON:

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

如果可以将原始字符串修改为有效的JSON,则可以执行以下操作:

JSON.parse(test)
有效的JSON:

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

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

var test = "{href:'one'},{href:'two'}";
var arr = eval("[" + test + "]");
关于最后一点,请注意,如果这个字符串来自用户,他们可能会传入恶意代码,eval将愉快地执行这些代码

作为一个非常微不足道的例子,考虑这个

var test = "(function(){ window.jQuery = undefined; })()";
var arr = eval("[" + test + "]");
砰,jQuery被消灭了


演示

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

var test = "{href:'one'},{href:'two'}";
var arr = eval("[" + test + "]");
关于最后一点,请注意,如果这个字符串来自用户,他们可能会传入恶意代码,eval将愉快地执行这些代码

作为一个非常微不足道的例子,考虑这个

var test = "(function(){ window.jQuery = undefined; })()";
var arr = eval("[" + test + "]");
砰,jQuery被消灭了

使用jQuery演示了

var str = '{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}';
var jsonObj = $.parseJSON('[' + str + ']');
jsonObj是您的JSON对象。

使用jQuery:

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

jsonObj是您的JSON对象。

您应该将字符串更改为有效的JSON。您从哪里获得该字符串?您可以通过连接将其包围在[]中,然后是JSON.parse,如果您确定其余部分的格式正确的话。但事实并非如此,因为属性href没有被引用,所以您需要这样做。。JSON.parse'['+'{href:one},{href:two}'+']',但是为什么不在开始时正确地构造它,而不是对一些无效的JSON进行后处理呢?new是一个关键字,不能用作变量的名称。您应该将字符串更改为有效的JSON。从哪里获得该字符串?您可以通过连接将其包围在[]中,然后是JSON.parse,如果您确定其余部分的格式正确的话。但事实并非如此,因为属性href没有被引用,所以您需要这样做。。JSON.parse'['+'{href:one},{href:two}'+']',但是为什么不在开始时正确地构造它,而不是对一些无效的JSON进行后处理呢?new是一个关键字,不能用作变量的名称..如果可以修改为更像JSON,希望它能被修改成JSON,并成为一个数组。@MichaelBerkowski当然:我只是简单地使用OPIf,如果它能被修改成更像JSON,希望它可以被修改为JSON,并作为一个数组开始。@MichaelBerkowski当然:我只是在操作上很简单,但是要小心输入来自哪里。但是要小心输入来自哪里。不需要jQuery。现在所有浏览器都支持JSON。。不需要jQuery。现在所有浏览器都支持JSON。。