2017-10-18 6 views
0

私は、配列の各辞書が与えられたsharepointレコードからすべてのキー値を持つ配列に共有リストを変換したいと思います。SharePointリストからJavaScript配列を作成するには?

私は次のことを試してみた:それは唯一の4つの列を引っ張るので、

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 
} 

結果は、私のSharePointリストからすべての列に必要な配列を与えるものではありませんし、私はすべてのカラム名を知りません。

+0

うーん、それはあなたのために同じものであるかどうかわからない...またはそれが毎回を変更した場合..しかし、私はこのようなことをすることでそのようなものを得ました。Object.keys(oListItem.get_objectData()["$ 1h_0"] ["$ m_dict"]) '' '私は、最後の2つのキー、環境や通話に基づいて変更する場合... –

答えて

1

私はjQueryを使って、REST APIを使用して好む:

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ドキュメント: https://msdn.microsoft.com/en-us/library/office/jj860569.aspx

+0

これは私が必要とするものです!ところで、変数ListNameは、ケーシングのために可変エラーを投げています – Chris

関連する問題