JQuery Ajax - 多个JSON数据集中的未定义索引

时间:2013-09-10 08:32:16

标签: json jquery

我正在通过JQuery Ajax返回一个JSON数据集,然后我想用它来设置文本框的值。数据集可以为空或最多3组数据。在JQuery中我有:

$.ajax({
    type: "POST",
    url: "scripts/get_diagnosis.php",
    data: {
        case_id: caseId,
        userId: user_id
    },
    dataType: "json",
    success: function(returnedData) {
    if(typeof returnedData[0].diagnosis !== 'undefined'){
    $('#diagnosis_l1').text(returnedData[0].diagnosis);
    }
    if(typeof returnedData[1].diagnosis !== 'undefined'){                           
$('#diagnosis_l1').text(returnedData[1].diagnosis);
}...

JSON数据(本例中只有一个):

[{"diagnosis":"Roger 1"}]

现在,只有JSON数据中的一个设置,代码不会从Ajax成功部分开始。在Firebug控制台中,它显示为unreData [1]未定义(如预期的那样)。但是,使用if(typeof returnedData[1].diagnosis !== 'undefined'){似乎不起作用。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

returnData是你的对象数组。由于此数组中只有一个对象,returnData[1]未定义=>你无法访问returnedData[1].diagnosis,它会抛出异常。它应该是:

if(typeof returnedData[1] !== 'undefined'){

答案 1 :(得分:0)

试试这个:

returnedData[0] && $('#diagnosis_l1').text(returnedData[0].diagnosis);
returnedData[1] && $('#diagnosis_l1').text(returnedData[1].diagnosis);