【发布时间】:2026-01-21 16:00:02
【问题描述】:
我想转换这个字符串
{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}
到 2 个 JSON 对象的数组。我该怎么做?
最好的
【问题讨论】:
-
如果你把它作为一个 JSON 字符串得到,那么它无论如何都不是有效的 JSON……你从哪里得到它?你能发布一个更完整的代码示例吗?
标签: javascript arrays json
我想转换这个字符串
{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}
到 2 个 JSON 对象的数组。我该怎么做?
最好的
【问题讨论】:
标签: javascript arrays json
使用 jQuery:
var str = '{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}';
var jsonObj = $.parseJSON('[' + str + ']');
jsonObj 是您的 JSON 对象。
【讨论】:
JSON.parse 多年来一直是“标准内置”对象的一部分。
就这么简单。
var str = '{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}';
dataObj = JSON.parse(str);
【讨论】:
正如 Luca 所指出的,在您的字符串中添加额外的 [] 并使用以下代码:
var myObject = eval('(' + myJSONtext + ')');
要测试它,您可以使用下面的 sn-p。
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 仅在您进行一些快速调试/测试时使用。
【讨论】:
如果你使用 jQuery,可以使用 parseJSON 函数,比 JavaScript 原生的 eval() 函数更可取。
【讨论】:
我知道很多人都在说使用 eval。 eval() js 函数会调用编译器,这会带来一系列的安全风险。最好尽可能避免使用它。 parse 函数提供了一种更安全的选择。
【讨论】: