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

IT技术 javascript arrays json
2021-01-26 16:20:14

我想转换这个字符串

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

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

最好的

6个回答

使用jQuery:

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

jsonObj 是您的 JSON 对象。

@ParapluieJSON.parse多年来一直是“标准内置”对象的一部分。
2021-03-18 16:20:14
jQuery.parseJSON() 已被弃用。
2021-03-20 16:20:14
@MarcL。应该用什么代替?
2021-03-22 16:20:14

正如 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 is Evil:eval 函数是 JavaScript 中最容易被误用的特性。避免它” - Douglas Crockford 在“Javascript: The Good Parts”中不推荐 Eval,因为它有多么危险。最好使用 JSON.parse() 代替。
2021-03-15 16:20:14
非常感谢经过大量研究,我最终得到了 eval 函数!!它将我的字符串 JSON 转换为实际的数组类型 JSON 数据
2021-03-20 16:20:14

就如此容易。

var str = '{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}';
 dataObj = JSON.parse(str);
正如对原始问题的评论所述,给定的字符串不是有效的 JSON。
2021-04-01 16:20:14

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

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

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