-4

如何将此 JavaScript 字符串数组转换为 JSON 字符串:

var arr = "{'id': '10', 'name': 'test1'},{'id': '11', 'name': 'test2'}";

这样就可以访问像arr[0].idarr[0].name等这样的成员?

4

6 回答 6

2

你所拥有的不是很有效JSON。它需要被包围[]并使用",而不是'

var arr = '[{"id": "10", "name": "test1"},{"id": "11", "name": "test2"}]';

要解析它,您可以使用

var parsedArray = JSON.parse(arr);

然后使用

parsedArray[0].id

请注意,这是假设JSON存储为以字符串开头的字符串,并且您是从该格式的某个位置获取它。如果您实际上只是想创建一个数组并访问它的元素,您应该使用数组文字作为@bfavaretto 的回答。

于 2013-07-19T18:13:36.997 回答
2

如果您真的在代码中直接定义该字符串,只需使用数组文字代替:

var arr = [
    {'id': 10, 'name': 'test1'},
    {'id': 11, 'name': 'test2'}
];

console.log(arr[0].id); // 10

如果不是这样,请在您的问题中编辑更多信息,例如字符串来自哪里,以及它到底是什么样子。

于 2013-07-19T18:14:15.667 回答
0

你的问题有点令人困惑。序列化、字符串形式的 Javascript 对象是 JSON。您的字符串看起来像是 JSON。如果是 JSON,您可以 JSON.parse() 将其转换为一个对象。如果你有一个 Javascript 对象,你可以 JSON.stringify() 把它变成一个字符串。您可能需要 json2.js 库,具体取决于您的浏览器。

于 2013-07-19T18:12:12.787 回答
0

如果您使用的是 jQuery,请使用:

jQuery.parseJSON( jsonString );

这正是您正在寻找的

http://api.jquery.com/jQuery.parseJSON/

于 2013-07-19T18:10:15.567 回答
0

JSON 是一种数据交换格式,主要用于系统之间的数据传输。尽管如此,我将您的问题解释如下:

  1. 创建对象数组
  2. 访问这些对象的属性

如果是这种情况,那么@bfavaretto 是正确的,因为您真正想要的是一个数组文字,其元素是对象。然后,您可以按索引访问每个单独的对象,并通过指定属性名称来访问该对象的任何属性。

于 2013-07-19T18:26:36.190 回答
-1

你可以使用下面的代码

var jsonObj = $.parseJSON('[' + arr+ ']');

作为 jsonObj,您可以将其用作 JSON 对象

于 2013-07-19T18:14:52.537 回答