2012-02-23 64 views
24

我需要存储在string格式3个宠物的名字,把它解析为阵,后来逐个读取JSON数组的JavaScript

pets = '{{"name":"jack"},{"name":"john"},{name:"joe"}}'; 

var arr = JSON.parse(pets); 

alert(arr[0].name); 

但它不工作。

此外,我需要添加条目数组(可能与),但我也有问题。

有人有想法该怎么做?

回答

57

您的JSON格式错误。试试这个:

var pets = '{"pets":[{"name":"jack"},{"name":"john"},{"name":"joe"}]}'; 
var arr = JSON.parse(pets); 
alert(arr.pets[0].name); 
16

JSON数组由括号[]界

尝试

pets = '[{"name":"jack"},{"name":"john"},{"name":"joe"}]'; 

你也忘了在最后一个属性名称中使用“的。

5

是只是将其更改为这方括号还检查最后一个元素上的双引号

pets = '[{"name":"jack"},{"name":"john"},{"name":"joe"}]'; 

var arr = JSON.parse(pets); 

alert(arr[0].name); 
1
pets = '[{"name":"jack"},{"name":"john"},{"name":"joe"}]'; 

var arr = JSON.parse(pets); 

alert(arr[0].name); 
+2

恳求e提供你的代码的解释。代码只有答案是不鼓励的。 – RedEyedMonster 2013-09-25 09:30:34

11

一个更简单的JSON数组(字符串数组)拟合答案:

["jack", "john", "joe"]; 

将其组合在一起,如JavaScript:

var pets = '["jack", "john", "joe"]'; 
 
var arr = JSON.parse(pets); 
 
console.log(arr[0]);