将javascript字符串转换为数组
问题描述:
我从隐藏的html输入字段中检索对象数组。我得到的字符串是:将javascript字符串转换为数组
"{"id":"1234","name":"john smith","email":"[email protected]"},{"id":"4431","name":"marry doe","email":"[email protected]"}"
现在我需要将它作为一个对象数组再次传递。如何将此字符串转换为对象数组?
答
var array_of_objects = eval("[" + my_string + "]");
这将执行字符串作为代码,这就是为什么我们需要添加[]使其成为一个对象。这也是eval作为最快,最简单的方法的少数合法用途之一。 :D
+0
仅供参考,如果您使用JSON解析器库,也可以使用JSON.parse方法。谢谢SLaks http://stackoverflow.com/questions/2710556/convert-javascript-string-to-an-array/2710558#2710558 – 2010-04-26 00:58:46
答
假设str
保存有效的JSON语法,您可以简单地调用eval(str)
。
为了安全起见,最好使用JSON parser,像这样:
JSON.parse(str);
注意str
必须[]
包裹是一个有效的JSON阵列。
答
var str=eval([{'id':'1','txt':'name1'},{'id':'2','txt':'name2'},{'id':'3','txt':'name3'}])
for(var i=0;i<str.length;i++)
{
alert(str[i].txt);
}
是否用'[]'包裹? – SLaks 2010-04-26 00:42:40