2016-09-21 2 views
1

Ich benutze AJAX, um JSON auf einer Liste in SharePoint 2013 abzurufen, ich bin erfolgreich beim Abrufen der Informationen. Mein Problem besteht darin, diese Informationen anzuzeigen. Ich bekomme mein Array von 78 Elementen zur Anzeige, ich bestätige auch die Informationen durch eine Warnung und die Konsole enter image description here, aber ich habe fast doppelt so viele zusätzliche Elemente mit Werten von "undefined" angezeigt. Ich brauche Hilfe, um herauszufinden, warum das so ist, und wie man die überzähligen Gegenstände entfernt. Ich bin ziemlich neu mit der Verwendung von AJAX und REST, so dass jede Hilfe geschätzt werden würde!SharePoint 2013: REST-API, GET JSON, Anzeigen von Listenelementen

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 
    }); 

Antwort

0

So würde ich normalerweise eine for-Schleife verwenden, aber das Code-Snippet unten sollte helfen. Ich vermute, dass der Grund, warum Sie zwei Ergebnisse erhalten, mit Ihrem verschachtelten $ .each() zu tun hat.

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. 

    } 
} 
Verwandte Themen