2017-10-18 1 views
0

Ich möchte eine Sharepoint-Liste in ein Array konvertieren, in dem jedes Wörterbuch im Array alle Schlüsselwerte aus einem bestimmten Sharepoint-Datensatz enthält.Wie erstelle ich ein JavaScript-Array aus einer SharePoint-Liste?

Ich habe versucht, die folgenden:

function array_from_sharepoint_list(){ 
    var array = [] 
    var context = SP.ClientContext.get_current() 
    var list = context.get_web().get_lists().getByTitle('Sharepoint_List') 
    var caml = new SP.CamlQuery() 
    caml.set_viewXML('') 
    var listitems = list.getItems(caml) 
    context.load(listitems,'Include(ID,Title,col_one,col_two)') 
    context.executeQueryAsync(
     Function.createDelegate(this,function(){ 
      var listEnumerator = listitems.getEnumerator(); 
      while (listEnumerator.moveNext()){ 
       var list_item = listEnumerator.get_current(); 
       var item_dictionary = {ID:list_item.get_item('ID'),Title:list_item.get_item('Title'),col_one:list_item.get_item('col_one'),col_two:list_item.get_item('col_two')} 
       array.push(item_dictionary) 
      } 
     }, 
     Function.createDelegate(this,function(){}))) 
    return array 
} 

Das Ergebnis mir nicht geben das Array mit jeder Spalte von der Sharepoint-Liste benötigt, da es vier Spalten nur zieht und ich weiß nicht, die alle Spaltennamen .

+0

Mmm nicht sicher, ob es die gleiche Sache für Sie ... oder wenn es ändert sich jedes Mal .. ., aber ich habe etwas in der Art, dass ich so etwas wie dieses machen kann. '' 'Object.keys (oListItem.get_objectData() [" $ 1h_0 "] [" $ m_dict "])' '' Die Sache ist, über die ich mir nicht sicher bin die letzten 2 Schlüssel, wenn sie sich je nach Umgebung oder Anruf ändern ... –

Antwort

1

ich lieber mit REST-API, mit jQuery:

function array_from_sharepoint_list(listName){ 
    var array = [] 
    var appWebUrl = _spPageContextInfo.webAbsoluteUrl; 

    $.ajax({ 
     url: appWebUrl + "/_api/web/lists/getbyTitle('" + ListName + "')/items", 
     type: "GET", 
     async: false, 
     headers: { 
      "accept": "application/json;odata=verbose" 
     }, 
     success: function (data) { 
      array = data.d.results; 
     }, 
     error: function (err) { 
      console.log(err); 
     } 
    }); 
    return array 
} 

REST API-Dokumentation: https://msdn.microsoft.com/en-us/library/office/jj860569.aspx

+0

Genau das brauche ich! Übrigens wirft die Variable ListName aufgrund der Hülle einen variablen Fehler auf – Chris

Verwandte Themen