Jquery和ajax与json数据解析

时间:2012-07-17 14:20:35

标签: javascript jquery json parsing

我的代码有什么问题,我无法在resultTXT中显示任何内容

txtfld显示数组

[{
    "user_id": "2790",
    "freelancer_name": "",
    "order_id": "9121",
    "orderamount": "0.00",
    "payment_method": " ....... "
}]

我希望用户ID在resultTXT

ajaxRequest.onreadystatechange = function(){
    if(ajaxRequest.readyState == 4){
        $.post('userfind.php', function(data) {
            $("#txtfld").val(data);

            var json = data,
            obj = JSON.parse(json);
            alert(""+obj.user_id);
            $("#resultTXT").val(obj.user_id);
        },'json');
    }
};
ajaxRequest.open("POST", "userfind.php", true);
ajaxRequest.send(null); 

请帮我改变一下。

2 个答案:

答案 0 :(得分:3)

我发现这有些问题。首先,为什么要两次POST userfind.php?你为什么使用vanilla JS AJAX和jQuery AJAX?只需使用一个。

其次,,'json'中的$.post表示jQuery将为您解析JSON,您不需要JSON.parse

第三,你的JSON是一个数组(对象),所以你需要先获取数组元素,然后是user_id属性。

$.post('userfind.php', function(data) {
    $("#txtfld").val(data);  // data is an object,
                             // so this will just put [object Object] in the field,
                             // probably not what you want

    alert(data[0].user_id);  // data is an array of (one) object(s)
    $("#resultTXT").val(data[0].user_id);
},'json');

答案 1 :(得分:0)

我认为这是因为json是一个数组所以也许可以尝试obj[0].user_id