我们可以使用Rest API在SharePoint Online中查询多级查找列吗?

时间:2016-09-21 09:09:26

标签: rest sharepoint sharepoint-2013

有3个SharePoint列表包含以下列:

PersonList:

  1. 标题
  2. AddressLookupColumn
  3. 地址列表:

    1. 标题
    2. AddressTypeLookupColumn
    3. AddressTypeList:

      1. 标题
      2. 我需要的是使用oData REST API的人名,地址和地址类型。

        以下是我的询问:

        JSONArray

        它给了我这个错误:

        https://mysitecollection/sites/test/_api/web/lists/getbytitle('PersonList')/items?$select=Title,AddressLookupColumn/Title,AddressLookupColumn/AddressTypeLookupColumn/Title&$Expand=AddressLookupColumn,AddressLookupColumn/AddressTypeLookupColumn_
        

        如何更正我的查询?

1 个答案:

答案 0 :(得分:0)

SharePoint Rest调用中不支持嵌套查询

SharePoint REST API不支持两级$ expand或嵌套查询。例如,您正在查询A列表,而A具有从B列表中查找的列。 B在C列表中有一个查找列。因此,如果要查询A列表,则只能$展开B的所有列。

/ _ api / web / lists / getbytitle('A')?$ select = {B的列}&$ expand = B
您无法$ expand扩展C中的任何列。原因是A与C之间没有直接关系。

解决方法#1

首先,获取B列表的ID,对B列表进行另一个REST调用,然后$ expand C的列。 / _api / web / lists / getbytitle('B')/ items({ItemId})?$ select = {从c中选择列}&$ expand = C
您可以使用$ batch请求来一次获取多个项目,但是$ batch请求在SharePoint 2013中不支持。

更多信息 https://www.c-sharpcorner.com/blogs/sharepoint-rest-api-limitation