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

Sob*_*bis 56 javascript arrays json

我想转换这个字符串

{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}
Run Code Online (Sandbox Code Playgroud)

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

最好

dar*_*ioo 88

使用jQuery:

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

jsonObj 是你的JSON对象.

  • jQuery.parseJSON() 已被弃用。 (3认同)
  • @Parapluie [`JSON.parse`](https://developer.mozilla.org/en-US/docs/web/javascript/reference/global_objects/json/parse) 已成为“标准内置”对象的一部分已经好几年了。 (2认同)

Ana*_*eek 28

正如Luca指出的那样,[]在字符串中添加额外内容并使用以下代码:

var myObject = eval('(' + myJSONtext + ')');
Run Code Online (Sandbox Code Playgroud)

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

var s =" [{'id':1,'name':'Test1'},{'id':2,'name':'Test2'}]";
var myObject = eval('(' + s + ')');
for (i in myObject)
{
   alert(myObject[i]["name"]);
}
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你..

  • “eval 是邪恶的:eval 函数是 JavaScript 中最常被滥用的功能。避免它” - Douglas Crockford 在《Javascript:The Good Parts》中 不建议使用 Eval,因为它可能非常危险。最好改用 JSON.parse() 。 (2认同)

Gya*_*raw 22

就如此容易.

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

  • 正如对原始问题的评论所述,给定的字符串不是有效的JSON. (2认同)

Luc*_*eis 6

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

您应该使用https://github.com/douglascrockford/JSON-js而不是eval().eval仅在您进行一些快速调试/测试时才会使用.


gre*_*ala 5

如果您使用 jQuery,则可以使用它的parseJSON函数,并且比 JavaScript 的本机eval()函数更可取。