2016-09-21 67 views
1

我正在使用AJAX在SharePoint 2013的列表中获取JSON,我成功地获取了这些信息。我的问题是显示所述信息。我可以显示78个项目的数组,我也通过警报和控制台enter image description here确认信息,但是我几乎将显示值为“未定义”的其他项目的数量增加了一倍。我需要帮助解决这是为什么,以及如何删除显示的多余项目。我对使用AJAX和REST相当新,所以任何援助将不胜感激!SharePoint 2013:REST API,GET JSON,显示列表项

function getData() 
    { 
     var $data = $('#data') 
     $.ajax({ 
     type: "GET", 
     dataType: "json", 
     cache: false, 
     url: "https://url.com/.../.../...", 

     success: function(data) 
     { 

      console.log(data); 
      alert("Data Loaded: " + JSON.stringify(data)); 
      $.each(data, function(index,item){ 
       $.each(this, function(index, item) 
        { 
        $data.append('<dl><dt> Event Date: </dt>' + item.EventDate + ' <dt>Subheading:</dt> ' + item.Subheading + '<dt> StatusInput: </dt>' + item.StatusInput + ' <dt> ReportIn: </dt>' + item.ReportIn + '<dt> Org: </dt>' + item.Org + '<dt> Start Reporting: </dt>' + item.StartReporting + '<dt> Stop Reporting: </dt>' + item.StopReporting + '<dt> Org Parent: </dt>' + item.OrgParent + '<dt> Modified: </dt>' + item.Modified + '</dl>');}); 
     });  
     }// end SUCCESS function 
    }); 

回答

0

所以我通常会使用for循环,但下面的代码片段应该有所帮助。我怀疑你得到两组结果的原因与你的嵌套$ .each()有关。

success: function(data){ 
    //Results are stored inside of the results object. 
    var results = data.d.results; 

    //Sometimes helps to log results to console. Helps 
    //to see what the specific column names. 
    console.log(results); 

    $.each(results, function(index, item){ 

     //Try using your append here. 

    } 
}