簡體   English   中英

正確解析ajax響應

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM