使用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"
]
但是,当使用相同的语法更新字段时,将返回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"
]
返回错误:
{
"error": {
"code": "invalidRequest",
"message": "The request is malformed or incorrect.",
"innerError": {
"request-id": "2251e25f-e4ce-491f-beb9-e463c7d8d5af",
"date": "2018-05-16T15:16:23"
}
}
}
我可以更新请求的所有其他字段,但最后一个字段是暂停应用程序的发布。
答案 0 :(得分:1)
要详细说明评论中的@ muhammad-obaidullah-ather,对于字符串多个选择,您需要将类型定义为 Collection(Edm。 String )然后他的解决方案对我有用。重复他写的完整答案。 应该以如下形式发送PATCH:
PATCH /v1.0/sites/{SiteId}/lists/{ListId}/items/{ItemId}/fields
{"*FieldName*@odata.type":"Collection(Edm.String)","*FieldName*":["*Value1*","*Value2*"]}
答案 1 :(得分:0)
不幸的是,今天无法通过Microsoft Graph更新许多列类型,包括MultiChoice
。我建议将其添加到Office Dev UserVoice,以便它仍然在SharePoint / Graph团队的雷达上。
答案 2 :(得分:0)
我可以使用以下
发布多个lookupid "ProductsLookupId@odata.type": "Collection(Edm.Int32)",
"ProductsLookupId":[6,7,8]
我遵循了此stackoverflow回复的建议
答案 3 :(得分:0)
这对我有用
graph.api(url)
.version('beta')
.post({
'fields': {
'AssignedToLookupId@odata.type': 'Collection(Edm.Int32)',
'AssignedToLookupId': [5,13]
}
});