如何将此JavaScript字符串数组转换为JSON字符串:
var arr = "{'id': '10', 'name': 'test1'},{'id': '11', 'name': 'test2'}";
这样可以访问arr[0].id
,arr[0].name
等成员吗?
答案 0 :(得分:2)
你所拥有的东西不是很有效JSON
。它需要被[]
包围并使用"
而不是'
:
var arr = '[{"id": "10", "name": "test1"},{"id": "11", "name": "test2"}]';
要解析它,您可以使用
var parsedArray = JSON.parse(arr);
然后使用
进行访问parsedArray[0].id
请注意,这是假设JSON
作为字符串存储开始,并且您从该格式的某处获取它。如果你实际上只是想创建一个数组并访问它的元素,你应该使用array literal作为@bfavaretto回答。
答案 1 :(得分:2)
如果你真的在代码中直接定义了这个字符串,那么只需使用数组文字:
var arr = [
{'id': 10, 'name': 'test1'},
{'id': 11, 'name': 'test2'}
];
console.log(arr[0].id); // 10
如果不是这样,请在您的问题中编辑更多信息,例如来自哪里的字符串,以及完全的内容。
答案 2 :(得分:0)
如果您正在使用jQuery,请使用:
jQuery.parseJSON( jsonString );
这正是你要找的东西
答案 3 :(得分:0)
你的问题有点令人困惑。 序列化,字符串形式的Javascript对象采用JSON格式。 你的字符串看起来像是想成为JSON。如果它是JSON,你可以将JSON.parse()放入一个对象中。 如果你有一个Javascript对象,你可以将JSON.stringify()放入一个字符串中。 您可能需要json2.js库,具体取决于您的浏览器。
答案 4 :(得分:0)
JSON是一种数据交换格式,主要用于在系统之间传输数据。尽管如此,我将您的问题解释如下:
如果是这种情况,那么@bfavaretto是正确的,因为你真正想要的是一个数组文字,其元素是对象。然后,您可以通过索引以及该对象的任何属性通过指定属性名称来访问每个单独的对象。
答案 5 :(得分:-1)
您可以使用以下代码
var jsonObj = $.parseJSON('[' + arr+ ']');
作为jsonObj,您可以将其用作JSON对象