我正在使用Microsoft Power Automate来自动化Sharepoint中的工作流。我已经设法在一个请求中获取列表中所有文件的指定属性,包括文件夹(请参阅下面的简化代码)。
https://<myDomain>.sharepoint.com/sites/<mySite>/_api/web/lists/getbytitle('<myList>')/items?$select=Folder/Files/ListItemAllFields/ID,Folder/Files/ListItemAllFields/Title&$expand=Folder/Files/ListItemAllFields
字符串
我设置了请求头“accept:json;odata= nometric”,因为我在输出中接收这个元数据没有意义。这个请求给了我以下JSON输出体:
"value": [
{
"Folder": {
"Files": [
{
"ListItemAllFields": {
"Id": 1, // Gives me back ID twice, Idk why but it
"ID": 1 // works just fine and doesnt bother me
"Title": "<fileTitle>"
}
},
... // Followed by all other 100+ files with ID and Title
]
型
现在,当我尝试按ID或任何其他列过滤这些文件时,奇怪的事情发生了,如下所示。
https://<myDomain>.sharepoint.com/sites/<mySite>/_api/web/lists/getbytitle('<myList>')/items?$select=Folder/Files/ListItemAllFields/ID,Folder/Files/ListItemAllFields/Title&$expand=Folder/Files/ListItemAllFields&$filter=(ID eq 1)or(ID eq 2)
型
当我向HTTP请求添加一个filter语句时,我会得到一个带空括号的JSON输出体:
"value": [
{}, // First file with ID = 1
{} // Second file with ID = 2
]
型
这很奇怪,因为它返回了正确数量的JSON对象(我尝试了一些组合,所以我很确定),但没有正确扩展对象的属性。这使得我的输出带有空括号,我想在其中获得我请求的属性“ID”和“Title”,如上所示。
据我所知,filter语句的语法是正确的,否则它不会给予我返回两个请求的对象。我的“expand”-语句中有语法错误吗?有人知道如何正确地获取或扩展这些对象吗?
1条答案
按热度按时间bttbmeg01#
你得到的是空对象,因为你在$select中提到的列不存在,这就是它返回空对象的原因。
不带过滤器的请求将返回一个如下所示的数组
字符串
因为在你的select语句中你提到了2列,
Folder/Files/ListItemAllFields/Title
个它不存在于Files中,这就是为什么它返回一个空对象。
型