使用Sharepoint REST,我能够获得文件和文件夹的“作者”(我将其作为所有者/创建者信息)信息。对于Files,我可以简单地展开"Author“元素并获取标题和UserId信息。对于文件夹,我必须使用展开"ListItemAllFields“的”ListItemAllFields“字段来进行后续的REST调用,以便通过Id解析标题和UserId信息(我也不喜欢这个额外的步骤,但我还没有找到一种方法来获取带有一个get的文件夹的信息)。但是,对于基本列表及其关联的“RootFolder”,即使展开RootFolder的ListItemAllFields,我也不会获得作者信息。是否有方法获取至少文档库列出的文件夹和文件所在的所有者\创建者信息?我期望扩展RootFolder的ListItemAllFields会给我"AuthorId“,就像它为文档库中创建的子文件夹所做的那样,但是我得到的全部信息是:
{
"d": {
"ListItemAllFields": null
}
}发布于 2014-11-09 19:08:30
ListItemAllFields属性返回与File或Folder对象关联的 List Item。
用于列表对象
REST查询:
http://<sitecollection>/<site>/_api/web/lists/getbytitle(listtitle)/ListItemAllFields不返回任何内容,因为List对象与列表项对象没有关联。
为了检索Author对象的List属性,可以使用以下方法。解决方案是从列表XML架构中提取Author属性。
以下方法用于返回List对象的所有可用属性:
function getListProperties(listTitle) {
var listEndpointUrl = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('" + listTitle + "')/SchemaXml";
return getJson(listEndpointUrl).then(
function(data){
var schemaXml = data.d.SchemaXml;
return schemaXml2Json(schemaXml);
});
}哪里
function getJson(url)
{
return $.ajax({
url: url,
type: "GET",
contentType: "application/json;odata=verbose",
headers: {
"Accept": "application/json;odata=verbose"
}
});
}
function schemaXml2Json(schemaXml)
{
var jsonObject = {};
var schemaXmlDoc = $.parseXML(schemaXml);
$(schemaXmlDoc).find('List').each(function() {
$.each(this.attributes, function(i, attr){
jsonObject[attr.name] = attr.value;
});
});
return jsonObject;
} 使用
如何获取Author对象的List属性:
getListProperties('Discussion Board')
.done(function(properties)
{
console.log('List created by: ' + properties.Author);
})
.fail(
function(error){
console.log(JSON.stringify(error));
});请跟随这个职位了解更多细节。
https://stackoverflow.com/questions/22511252
复制相似问题