[英]Parse ajax response properly
我使用Ajax從服務器獲取數據。
返回的數據(來自Firebug):
{"users":[{"name":"some name", "age":17},{"name":"some name2", "age":25}]}
當我嘗試
$.post('server.php', function(data){
var users = eval(data).users;
alert(users[0].name);
});
我上螢火蟲:
Uncaught SyntaxError: Unexpected token )
有什么幫助嗎?
請不要使用eval-這是邪惡的
相反,只需使用參數“ json”。
$.post('server.php', function(data) {
alert(data.users[0].name);
}, "json");
如果您的標頭是正確的,則您甚至不需要json參數,但它會強制jQuery想要接收並將其解析為JSON。
用單引號將數據編碼在方括號中
$.post('server.php', function(data){
var users = eval('('+data+')');
alert(users[0].name);
});
您必須用括號將json字符串括起來
$.post('server.php', function(data){
var users = eval('('+data+')').users;
alert(users[0].name);
});
我對eval()
不太了解,但也許我不太了解該函數...
有了這個作品:
var data = {"users":[{"name":"some name", "age":17},{"name":"some name2", "age":25}]};
alert(data.users[0].name);
您還可以循環使用:
$.each(data.users, function (i, user_obj){
alert(user_obj.name);
});
看一下這個演示 。
最好將dataType: "json"
添加到您的Ajax請求中,以便對其進行正確解析。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.