我想要将这个字符串转换
{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}
如何将其转换为包含两个JSON对象的数组?我该怎么做?
最佳方案
我想要将这个字符串转换
{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}
如何将其转换为包含两个JSON对象的数组?我该怎么做?
最佳方案
使用jQuery:
var str = '{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}';
var jsonObj = $.parseJSON('[' + str + ']');
jsonObj
是你的 JSON 对象。
JSON.parse
已经成为“标准内置”对象数年了。 - Marc L.就是这么简单。
var str = '{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}';
dataObj = JSON.parse(str);
正如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"]);
}
希望它能够帮助到您。
在字符串的开头和结尾添加额外的[
和]
,将其转换为数组。然后使用eval()
或某些安全的JSON序列化程序将字符串序列化,使其成为真正的JavaScript数据类型。
你应该使用https://github.com/douglascrockford/JSON-js代替eval()
。如果你只是做一些快速的调试/测试,才应该使用eval
。
我知道很多人会建议使用eval。但是,eval()函数会调用编译器,这可能会带来一系列安全风险。因此,在可以避免使用eval的情况下,最好不要使用它。相比之下,parse函数提供了更加安全的替代方案。