SharePoint Online REST API添加列表项时多人字段为空问题排查
核心问题分析
你遇到的多人字段为空的问题,主要是三个错误导致:
- 使用了无效的用户ID(
0):SharePoint中用户ID均为正整数,0是无效值,会被系统忽略 - 错误的字段名(
AssignedToStringId):多人字段的REST API赋值字段名应为字段内部名称 + Id,不存在带String后缀的字段名 - 传递了字符串类型的ID:用户ID是整数类型,传字符串格式的ID会被系统忽略
正确的赋值步骤与格式
确认字段内部名称
先获取多人字段的内部名称:- 方式1:进入列表设置→点击对应字段,查看地址栏中
Field=后的参数值 - 方式2:调用REST API:
/_api/web/lists/getbytitle('你的列表名')/fields?$filter=Title eq 'AssignedTo',返回结果中的InternalName即为内部名称
- 方式1:进入列表设置→点击对应字段,查看地址栏中
获取有效用户ID
通过用户邮箱或账号获取ID,调用REST API:/_api/web/siteusers?$filter=Email eq 'user@example.com',返回结果中的Id属性即为用户的有效ID(整数)正确的请求体格式
无需添加多余的__metadata类型声明,直接使用以下格式:{ "__metadata": { "type": "SP.Data.你的列表名ListItem" }, "Title": "测试任务", "AssignedToId": { "results": [123, 456] } // 替换为实际的用户ID数组,支持多个用户 }
完整请求示例
- 请求方法:POST
- 请求地址:
/_api/web/lists/getbytitle('你的列表名')/items - 请求头:
Accept: application/json;odata=verbose Content-Type: application/json;odata=verbose X-RequestDigest: [页面获取的请求摘要值] - 请求体:上述正确格式的JSON
内容的提问来源于stack exchange,提问作者Eldrad95
相关产品推荐
相关产品推荐

