2010-11-23 59 views
2

如何從json文件中使用文本字段作爲識別碼的源檢索狀態字段?使用jquery(getJSON)和json檢索值

我data.json文件:

[{ 
     "code":"001", 
     "status":"ready" 
    }, 
    { 
     "code":"002", 
     "status":"not ready" 
    } 
] 

我的jQuery的文件:

$(document).ready(function() { 
$('#ticketsearch').click(function() { 
    var ticketcode = $('[name=ticketcode]').val(); 
    $('.ticket').text(ticketcode); 
    $.getJSON('data.json', function(data) { 
    $('.status').text(data.status); 
    }); 
    }); 
}); 

回答

2

在這種情況下,您通過需要循環,直到找到code匹配,就像這樣:

$(document).ready(function() { 
    $('#ticketsearch').click(function() { 
    var ticketcode = $('[name=ticketcode]').val(); 
    $('.ticket').text(ticketcode); 
    $.getJSON('data.json', function(data) { 
     $.each(data, function(i, obj) { 
     if(obj.code == ticketcode) 
      $('.status').text(obj.status); 
     }); 
    }); 
    }); 
}); 

如果它是一個選項,只是簡化了您的JSON的地方code是關鍵,像這樣:

{ 
    "001":"ready", 
    "002":"not ready" 
} 

然後你就可以通過該鍵來訪問它,像這樣:

$(document).ready(function() { 
    $('#ticketsearch').click(function() { 
    var ticketcode = $('[name=ticketcode]').val(); 
    $('.ticket').text(ticketcode); 
    $.getJSON('data.json', function(data) { 
     $('.status').text(data[ticketcode]); 
    }); 
    }); 
}); 
+0

我喜歡你的第二個版本,但$('。status').text(data [ticketcode]); 不返回任何值。 PS。我更新了我的JSON文件 – adpo 2010-11-23 23:20:08

+0

@adpo - 如果你提醒`ticketcode`你會得到什麼?如果它不是「001」或者「002」等,那麼當它找不到密鑰的時候。 – 2010-11-23 23:22:39

0

你要哪一個?你找回一個數組。如果你想要第一個狀態:data[0].status。如果第二個元素:data[1].status

+0

我會從文本字段中選擇id,然後提交。我可以使用例如數據[ticketcode] .status – adpo 2010-11-23 23:00:52

0

您有一個字典對象數組,因此您需要使用data[0].status高達data[n].status