如何从SharePoint列表创建javascript数组?

问题描述 投票:1回答:1

我想将一个sharepoint列表转换为一个数组,其中数组中的每个字典都包含来自给定sharepoint记录的所有键值。

我尝试过以下方法:

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列表中每列所需的数组,因为它只提取了四列,而且我不知道所有列名。

javascript arrays sharepoint sharepoint-2010
1个回答
2
投票

我更喜欢使用REST API,使用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文档:https://msdn.microsoft.com/en-us/library/office/jj860569.aspx

© www.soinside.com 2019 - 2024. All rights reserved.