2

我有一个有效的 REST 请求,它返回一个大的结果集合。(此处修剪)

原网址是:

http://intranet.domain.com//_api/SP.UserProfiles.PeopleManager/GetPropertiesFor(accountName=@v)?@v='domain\kens'&$select=AccountName,DisplayName,Email,Title,UserProfileProperties

回应是:

{
"d": {
    "__metadata": {
        "id": "stuff",
        "uri": "morestuff",
        "type": "SP.UserProfiles.PersonProperties"
    },
    "AccountName": "domain\\KenS",
    "DisplayName": "Ken Sanchez",
    "Email": "KenS@domain.com",
    "Title": "Research Assistant",
    "UserProfileProperties": {
        "results": [
            {
                "__metadata": {
                    "type": "SP.KeyValue"
                },
                "Key": "UserProfile_GUID",
                "Value": "1c419284-604e-41a8-906f-ac34fd4068ab",
                "ValueType": "Edm.String"
            },
            {
                "__metadata": {
                    "type": "SP.KeyValue"
                },
                "Key": "SID",
                "Value": "S-1-5-21-2740942301-4273591597-3258045437-1132",
                "ValueType": "Edm.String"
            },
            {
                "__metadata": {
                    "type": "SP.KeyValue"
                },
                "Key": "ADGuid",
                "Value": "",
                "ValueType": "Edm.String"
            },
            {
                "__metadata": {
                    "type": "SP.KeyValue"
                },
                "Key": "AccountName",
                "Value": "domain\\KenS",
                "ValueType": "Edm.String"
            }...

是否可以使用 $filter 更改 REST 请求,该过滤器仅返回 Key=SID OR Key= 其他值的结果集合中的键值?

我只需要按名称从结果集合中获取大约 3 个值。

4

1 回答 1

0

在 OData 中,您无法过滤内部提要。

相反,您可以尝试查询 UserProfileProperties 来自的实体集并展开关联的 SP.UserProfiles.PersonProperties 实体。

需要针对您的场景调整语法,但我正在考虑以下方面:

service.svc/UserProfileProperties?$filter=Key eq 'SID' and RelatedPersonProperties/AccountName eq 'domain\kens'&$expand=RelatedPersonProperties

这假设您有一个 UserProfileProperties 的顶级实体集,并且每个实体都通过名为(在我的示例中)RelatedPersonProperties 的导航属性绑定回单个 SP.UserProfiles.PersonProperties 实体。

于 2013-09-22T01:58:56.670 回答