2010-11-23 89 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