将javascript字符串转换为数组

dev*_*per 5 javascript arrays literals string-literals

我正在从隐藏的html输入字段中检索一个对象数组.我得到的字符串是:

"{"id":"1234","name":"john smith","email":"jsmith@blah.com"},{"id":"4431","name":"marry doe","email":"mdoe@blah.com"}"
Run Code Online (Sandbox Code Playgroud)

现在我需要再次将其作为一个对象数组传递.如何将此字符串转换为对象数组?

Gor*_*son 12

var array_of_objects = eval("[" + my_string + "]");
Run Code Online (Sandbox Code Playgroud)

这会将字符串作为代码执行,这就是我们需要添加[]以使其成为对象的原因.这也是eval作为最快和最简单方法的少数合法用途之一.:d


SLa*_*aks 8

假设str保持有效的JSON语法,您可以简单地调用eval(str).

出于安全原因,最好使用JSON解析器,如下所示:

JSON.parse(str);
Run Code Online (Sandbox Code Playgroud)

请注意,str必须将其包装[]为有效的JSON数组.