2013-08-22 181 views
1

我无法从下面的JSON字符串成功获取数据。使用JavaScript,我可以提醒整个字符串[alert(data); ]但我无法获得唯一的名字。从JSON字符串获取数据

有人可以帮忙吗?

var data = { 
    "name": [ 
     "Enid Norgard", 
     "Cassie Durrett", 
     "Josephine Ervin" 
    ], 
    "email": [ 
     "[email protected]", 
     "[email protected]", 
     "[email protected]" 
    ], 
    "role": [ 
     "Gamer", 
     "Team Leader", 
     "Player" 
    ], 
    "emp_id": [ 
     "50", 
     "408", 
     "520" 
    ], 
    "id": [ 
     "234", 
     "444", 
     "235" 
    ] 
} 
+2

的第一个名字是'data.name [0]' –

+0

我得到试试这个循环以下错误'未捕获TypeError:无法读取属性'0'的undefined' – AlGallaf

+0

这项工作 - > data.name [0],但我认为你的真实代码是不同的,请提供真实代码 –

回答

5

看起来你有一个字符串(因为当你使用警报显示完整的文本,如果它是一个对象,然后[Object object]会显示),首先你需要使用解析它JSON.parse()

var t = JSON.parse(data) 
alert(t.name[0]) 

注意:旧的浏览器,如IE8不为JSON的原生支持,你必须添加库像json2添加JSON支持

+0

@Paul不'警报{“hello”:“world”})' –

+1

JSON.parse解决了这个问题,因为我没有解析字符串。谢谢。 – AlGallaf

1

使用下面的代码

alert(data.name[0]); 
+0

我得到以下错误'未捕获TypeError:无法读取属性'0'未定义' – AlGallaf

+1

我想你没有提供你的真实代码,检查一个正在运行的版本在这里:http://jsfiddle.net/qzv6B/ –

+0

@AlGallaf ,alert(data.name [0]);也为我工作 –

0
//sample code 
    var json = '{"result":true,"count":1}', 
    obj = JSON.parse(json); 
    alert(obj.count); 

对于那些不能使用json2.js实现的浏览器。 大多数浏览器都支持JSON.parse(),希望这可以帮助您了解详细信息,请参阅link

0

随着data.name [0]你会得到名称伊尼德诺加德 到使用

data.name[index] 

类似,而指数是在innerarray名的位置。

如果你想只有人名阵列中使用:

alert(data.name) 
0

通过所有元素

for(x in data) 
{ 
    for(y in data[x]) 
    { 
     alert(data[x][y]); 
    } 
}