使用jquery(getJSON)和json检索值

时间:2010-11-23 22:48:30

标签: jquery json

如何使用文本字段作为识别器代码的源从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);
  });
  });
});

3 个答案:

答案 0 :(得分: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]);
    });
  });
});

答案 1 :(得分:0)

你想要哪一个?你得到一个阵列。如果您想要第一个状态:data[0].status。如果第二个元素:data[1].status

答案 2 :(得分:0)

您有一系列字典对象,因此您需要使用data[0].status最多data[n].status