Microsoft Graph 更新 SharePoint 列表项多选字段

Nat*_*rke 7 json sharepoint-online microsoft-graph-api

使用 Microsoft Graph 更新多选列表项字段的正确 JSON 语法是什么?

多项选择字段返回一个 json 字符串数组,例如:

得到:/v1.0/sites/{siteId}/lists/{listId}/items/{itemId}

"CAG_x0020_Process_x0020_Status": [
    "Proposed Funding - Customer Billed",
    "Proposed Funding - Sales Funded",
    "SOW - Needed"
]
Run Code Online (Sandbox Code Playgroud)

但是,当使用相同的语法更新字段时,会返回 400 无效请求。

修补:/v1.0/sites/{siteId}/lists/{listId}/items/{itemId}/fields

"CAG_x0020_Process_x0020_Status": [
    "Proposed Funding - Customer Billed",
    "Proposed Funding - Sales Funded",
    "SOW - Needed"
]
Run Code Online (Sandbox Code Playgroud)

返回错误:

{
  "error": {
    "code": "invalidRequest",
    "message": "The request is malformed or incorrect.",
    "innerError": {
      "request-id": "2251e25f-e4ce-491f-beb9-e463c7d8d5af",
      "date": "2018-05-16T15:16:23"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我可以更新请求的所有其他字段,但最后一个字段阻碍了应用程序的发布。

小智 5

为了详细说明 @muhammad-obaidullah-ather 在评论中所写的内容,对于字符串多重选择,您需要将类型定义为Collection (Edm.String ),然后他的解决方案对我有用。重复他写的完整答案。这应该作为补丁发送,如下所示:

PATCH /v1.0/sites/{SiteId}/lists/{ListId}/items/{ItemId}/fields

{"*FieldName*@odata.type":"Collection(Edm.String)","*FieldName*":["*Value1*","*Value2*"]}
Run Code Online (Sandbox Code Playgroud)


Mar*_*eur 0

遗憾的是,许多列类型(包括 )MultiChoice目前无法通过 Microsoft Graph 进行更新。我建议将其添加到Office Dev UserVoice中,以便它继续受到 SharePoint/Graph 团队的关注。