如何在REST API中使用查阅项的值作为过滤条件
原文地址:點(diǎn)擊打開(kāi)鏈接
這是要解決的問(wèn)題:在使用REST API的時(shí)候,對(duì)于lookup類型的列,不能使用它的值來(lái)過(guò)濾item。
原因其實(shí)很簡(jiǎn)單,使用REST API獲取的值是id,而不是我們想得到的字符串。
下面舉個(gè)例子:你有兩個(gè)列表
(1)Companies
(2)Exployees
Employees列表有一個(gè)Employer列,是一個(gè)lookup列,在Companies列表中取值。如果你使用REST API獲取一條Employees列表中的item的數(shù)據(jù),會(huì)得到如下結(jié)果:(注意xml中有一個(gè)EmployerId節(jié)點(diǎn),卻沒(méi)有Employer節(jié)點(diǎn))
“EmployerId”節(jié)點(diǎn)其實(shí)包含的值是Employer所lookup的item的Id,這個(gè)item在Companies列表中,其Id為1。如果你想使用這一列作為過(guò)濾條件,就必須使用OData操作符“$expand”。因此如果需要在Employees列表中,過(guò)濾出來(lái)所有為ID是1的company工作的員工,應(yīng)該使用如下代碼:
http://[...]/_api/web/lists/getbytitle('Employees')/Items/ ?$select=Title,Employer/Id &$expand=Employer/Id &$filter=Employer/Id eq 1
如果是元數(shù)據(jù)(Managed Metadata)該怎樣處理呢? 一個(gè)metadata field本質(zhì)上也是一個(gè)lookup類型的field,源數(shù)據(jù)列表是一個(gè)隱藏列表“TaxonomyHiddenList”中。我的測(cè)試列表中的一個(gè)metadata類型的field的名字為“Relevant Office”,使用REST API獲取到的值為:
可以看到,在“Label”節(jié)點(diǎn)中保存著metadata的值“New York”,在WssId節(jié)點(diǎn)中保存著metadata所引用的值的Id,在TernGuid節(jié)點(diǎn)中保存著guid。因此我們可以根據(jù)這些信息,到“TaxonomyHiddenList”這個(gè)隱藏的列表中讀取真正的metadata的值。
總結(jié)
以上是生活随笔為你收集整理的如何在REST API中使用查阅项的值作为过滤条件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: zabbix监控系统进阶专题篇(企业微信
- 下一篇: Excel怎么调出开发工具选项