Jquery和ajax如何解析json?

时间:2014-01-16 16:17:08

标签: javascript php jquery ajax json

我正在使用Jquery和ajax。

我有一个简单的表单和我的 jquery

这是代码的一部分:

username = $('input[name="username"]').val(); 
$.post("api.php", {username: username}, function(data) {  
    if(data == "error") {
        data("erreur");
    } else {
        alert(data);
        $('input[name="subscribers"]').attr("placeholder", "something").blur();
        $('input[name="viewCount"]').attr("placeholder", "something").blur();
    }
});

alert(data);

的结果
{"total":"628729","abo":"1646"}

我想将总计的结果和 abo 的结果放入我的场所:

$('input[name="subscribers"]').attr("placeholder", ?abo?).blur();

但我不知道是谁能恢复json的结果并取值总计 abo

注意:我的json是文件api.php的json_encode

4 个答案:

答案 0 :(得分:1)

jQuery似乎试图将JSON作为文本处理(或者更可能是HTML)。

告诉jQuery它是JSON:

<?php header("Content-Type: application/json"); ?>

然后你可以:

foo = data.total

答案 1 :(得分:0)

试试这个:

if (data) {
    data = JSON.parse(data);
    $('input[name="subscribers"]').attr("placeholder", data.abo).blur();
}

答案 2 :(得分:0)

您可以使用$.parseJSON()来解析json

username = $('input[name="username"]').val(); 
$.post("api.php", {username: username}, function(data) {  
    if(data == "error") {
        data("erreur");
    } else {
        alert(data);
        data=$.parseJSON(data); // add this line
        $('input[name="subscribers"]').attr("placeholder", "something").blur();
        $('input[name="viewCount"]').attr("placeholder", "something").blur();
    }
});

答案 3 :(得分:0)

JSON是一个表示(在本例中)对象的字符串,因此data是一个字符串。为了从字符串转到对象,您需要解析它。有一个JSON.parse()函数可以做到这一点:

if(data == "error") {
    data("erreur");
} else {
    alert(data);
    var yourObj = JSON.parse(data);
    $('input[name="subscribers"]').attr("placeholder", yourObj.abo).blur();
    $('input[name="viewCount"]').attr("placeholder", yourObj.subscribers).blur();
}