JSON对象的数组,我想这个字符串转换JSON字符串在Javascript
{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}
转换为2个JSON对象的数组。我应该怎么做?
最好
JSON对象的数组,我想这个字符串转换JSON字符串在Javascript
{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}
转换为2个JSON对象的数组。我应该怎么做?
最好
使用jQuery:
var str = '{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}';
var jsonObj = $.parseJSON('[' + str + ']');
jsonObj
是您的JSON对象。
非常感谢 – Sobis 2010-12-07 12:02:56
@Sobis您可能已经接受了答案... – 2011-04-11 12:15:34
追加额外的[
和]
字符串的开头和结尾。这将使它成为一个数组。然后使用eval()
或一些安全的JSON序列化程序对字符串进行序列化并使其成为真正的JavaScript数据类型。您应使用https://github.com/douglascrockford/JSON-js而不是eval()
。 eval只有在你做一些快速调试/测试的时候。
如果您使用jQuery,它的功能可以使用parseJSON,并且优于JavaScript的原生eval()
函数。
由于卢卡表明,添加额外的[]
到您的字符串,并使用下面的代码:
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"]);
}
希望它有助于..
它适用于此解决方案 – Anup 2014-09-15 11:27:39
我知道很多人都在说使用eval。 eval()js函数会调用编译器,这会带来一系列的安全风险。尽可能避免使用它。解析函数提供了一个更安全的选择。
就这么简单。
var str = '{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}';
dataObj = JSON.parse(str);
如果你得到这个作为JSON字符串,那么它是无效的JSON无论如何...你从哪里得到它?你能发布一个更完整的代码示例吗? – 2010-12-07 10:22:51