在Javascript中将JSON字符串转换为JSON对象数组

时间:2010-12-07 10:18:44

标签: javascript arrays json

我想转换此字符串

{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}

到2个JSON对象的数组。我该怎么办?

最好的

6 个答案:

答案 0 :(得分:87)

使用jQuery:

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

jsonObj是您的JSON对象。

答案 1 :(得分:25)

正如Luca所说,在你的字符串中添加额外的[]并使用以下代码:

var myObject = eval('(' + myJSONtext + ')');

要测试它,您可以使用下面的代码段。

var s =" [{'id':1,'name':'Test1'},{'id':2,'name':'Test2'}]";
var myObject = eval('(' + s + ')');
for (i in myObject)
{
   alert(myObject[i]["name"]);
}
希望它有所帮助..

答案 2 :(得分:20)

就这么简单。

var str = '{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}';
 dataObj = JSON.parse(str);

答案 3 :(得分:6)

在字符串的开头和结尾附加额外的[]。这将使它成为一个数组。然后使用eval()或一些安全的JSON序列化程序来序列化字符串并使其成为真正的JavaScript数据类型。

您应该使用https://github.com/douglascrockford/JSON-js代替eval()。只有在你进行一些快速调试/测试时才会进行评估。

答案 4 :(得分:4)

如果你使用jQuery,它可以使用parseJSON函数,并且比JavaScript的原生eval()函数更可取。

答案 5 :(得分:1)

我知道很多人都在说使用eval。 eval()js函数将调用编译器,这可能会带来一系列安全风险。最好尽可能避免使用它。解析功能提供了更安全的替代方案。