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