Javascript JSON对象访问错误

Javascript JSON对象访问错误,javascript,json,Javascript,Json,我最近正在使用JSONP开发一个phonegap应用程序,以创建一种动态的感觉。然而,我最近遇到了一点麻烦 以下函数用于将一些交付数据(无关)解析为jquery mobile: function parseProdData(results) { var html = ''; for (day in results.deliveries) { var today = results.deliveries[day].delivery; var to

我最近正在使用JSONP开发一个phonegap应用程序,以创建一种动态的感觉。然而,我最近遇到了一点麻烦

以下函数用于将一些交付数据(无关)解析为jquery mobile:

function parseProdData(results) {
    var html = '';

    for (day in results.deliveries) {
        var today = results.deliveries[day].delivery;

        var today_date_arr = today.date.split('-');
        var today_date = today_date_arr[2]+'/'+today_date_arr[1]+'/'+today_date_arr[0];

        html += '<li><a href="#">';
        html += today.delivery_day+', '+today_date;
        html += '</a></li>';
        console.log(html);
    }

    $('#JSON-list').append(html); 
    $('#JSON-list').trigger('create');    
    $('#JSON-list').listview('refresh');

}
有人知道为什么会出现这个错误吗

*编辑* 也就是说,我非常确信错误在顶部,而不是JQuery移动元素,就像我注释掉block
$('#JSON list')。append(html)带有
$('#JSON列表')。追加(
  • 然后它就可以工作了,但这显然不是一个解决方案

    *编辑2*
    问题只是在“deliveries”块的末尾有一个空元素,这导致了未捕获错误。我没有注意到它,因为元素是空的。感谢@eithedog为我指明了正确的方向

    我将json数据保存在result.json文件中,然后使用这个

    $.getJSON('result.json', function(result, status){
     var today =  result.deliveries;
     var html = "";
     $.each(today, function(key, value){      
       $.each(value, function(key, value){
          var today_date_arr = value.date.split('-');
          var today_date = today_date_arr[2]+'/'+today_date_arr[1]+'/'+today_date_arr[0];
          html += '<li><a href="#">'+value.delivery_day+', '+today_date+'</a></li>';          
      })
     })
      $('#JSON-list').append(html); 
      $('#JSON-list').trigger('create');    
      $('#JSON-list').listview('refresh');
    })
    .success(function(result) {}) 
    .fail(function(jqXHR, textStatus, errorThrown) {
     }) 
    .complete(function() {  }); 
    
    $.getJSON('result.json',函数(结果,状态){
    var today=结果交付;
    var html=“”;
    $.each(今天,函数(键,值){
    $.each(值、函数(键、值){
    var today_date_arr=value.date.split('-');
    var today_date=today_date_arr[2]+'/'+today_date_arr[1]+'/'+today_date_arr[0];
    html+='
  • '; }) }) $('#JSON list').append(html); $('#JSON list')。触发器('create'); $('#JSON list').listview('refresh'); }) .success(函数(结果){}) .fail(函数(jqXHR、textStatus、errorshown){ }) .complete(函数(){});
    问题在于“deliveries”块末尾有一个空元素,这导致了未捕获错误。我没有注意到它,因为元素是空的


    感谢@eithedog为我指明了正确的方向

    如果改用
    今天['delivery_day']
    会发生什么?在控制台中运行代码不会对提供的JSON对象产生任何错误。您确定这与这部分代码有关,而不是这些函数中的一个:
    $(“#JSON list”).trigger('create')$(“#JSON列表”).listview(“刷新”)?@Andy,交货日期和交货日期完全相同response@eithedog代码json list etc只是将代码附加到jquery mobile
      的末尾,ID为json list。该代码使用的是直接类型的html,因此我认为这不是问题所在。您的一些JSON条目不包含
      date
      字段(但这不会填充您的表),或者在某个地方附加了其他触发器,导致了问题。请您评论一下触发行,现在只添加html,好吗?
      $.getJSON('result.json', function(result, status){
       var today =  result.deliveries;
       var html = "";
       $.each(today, function(key, value){      
         $.each(value, function(key, value){
            var today_date_arr = value.date.split('-');
            var today_date = today_date_arr[2]+'/'+today_date_arr[1]+'/'+today_date_arr[0];
            html += '<li><a href="#">'+value.delivery_day+', '+today_date+'</a></li>';          
        })
       })
        $('#JSON-list').append(html); 
        $('#JSON-list').trigger('create');    
        $('#JSON-list').listview('refresh');
      })
      .success(function(result) {}) 
      .fail(function(jqXHR, textStatus, errorThrown) {
       }) 
      .complete(function() {  });