我有这个字符串,我想将其转换为数组:
var test = "{href:'one'},{href:'two'}";
那么如何将其转换为数组?:
var new = [{href:'one'},{href:'two'}];
答案 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对象。