我在StackOverflow上发现了很多关于解析json数组的线程,但我似乎无法弄清楚如何找回一些数据。这就是我的......
$('#keyword_form').submit(function(e){
var gj = $.post('employee_search.php',$('#keyword_form').serialize(),function(data){
if(!data || data.status !=1 )
{
alert(data.message);
return false;
}
else
{
alert(data.message);
}
},'json');
e.preventDefault();
});
发送给它的json数据看起来像这样......
{
"status":1,
"message":"Query executed in 9.946837 seconds.",
"usernames_count":{
"gjrowe":5,
"alisonrowe":4,
"bob":"1"
}
}
我的功能显示我可以alert(data.message);
,但如何访问usernames_count
数据?
我的困惑来自数据没有名称/标签的事实。 bob
是用户名,1
是与该用户名相关联的返回计数
如果我alert(usernames_count);
,我会回来[object Object]
如果我alert(usernames_count[0]);
,我会回来undefined
我确信我应该对JSON.parse();
采取行动,但我还没有做好
答案 0 :(得分:4)
试试这个:
$.each(data.usernames_count, function(username, val) {
alert(username+" has a value of "+val);
});
答案 1 :(得分:4)
您可以使用Object.keys或for…in循环 - 请记住在这种情况下使用hasOwnProperty:
var users = data.usernames_count;
Object.keys(users).forEach(function(user) {
console.log(user, users[user]);
});
答案 2 :(得分:-1)
听起来你的问题是如何迭代usernames_count
对象中的条目。你可以这样做:
var key = '';
for(key in data.usernames_count) {
//check that this key isn't added from the prototype
if(data.usernames_count.hasOwnProperty(key) {
var value = data.usernames_count[key];
//do something with the key and value
}
}