我想更新Sharepoint中ListItem的某些字段。我如何通過REST API實現這一目標?通過Sharepoint REST API更新列表項
有沒有關於此的任何文檔?
編輯1
考慮以下JSON,我收到請求列表項(GET)
{
"d": {
"__metadata": {
"id": "8b3d2196-ad3e-4766-a23e-7e6a89153965",
"uri": "https://abc-my.sharepoint.com/personal/nn_abc_co/_api/Web/Lists(guid'd02a8c5b-cd69-4aa8-b7fb-9d539733f285')/Items(383)",
"etag": "\"2\"",
"type": "SP.Data.DocumentsItem"
},
"FirstUniqueAncestorSecurableObject": {
"__deferred": {
"uri": ".../FirstUniqueAncestorSecurableObject"
}
},
"RoleAssignments": {
"__deferred": {
"uri": ".../RoleAssignments"
}
},
"AttachmentFiles": {
"__deferred": {
"uri": ".../AttachmentFiles"
}
},
"ContentType": {
"__deferred": {
"uri": ".../ContentType"
}
},
"FieldValuesAsHtml": {
"__deferred": {
"uri": ".../FieldValuesAsHtml"
}
},
"FieldValuesAsText": {
"__metadata": {
"id": ".../FieldValuesAsText",
"uri": ".../_api/Web/Lists(guid'd02a8c5b-cd69-4aa8-b7fb-9d539733f285')/Items(383)/FieldValuesAsText",
"type": "SP.FieldStringValues"
},
"ContentTypeId": "0x0120000E7EB3018A9074468823208C432BDCA5",
"Title": "",
"IsMyDocuments": "",
"SharedWithInternal": "",
"SharedWithUsers": "",
"ID": "383",
"Created": "7/29/2014 11:28 PM",
"Author": "3",
"Modified": "7/29/2014 11:28 PM",
"Editor": "3",
"OData__x005f_CopySource": "",
"CheckoutUser": "",
"OData__x005f_UIVersionString": "1.0",
"GUID": "da1e223b-1335-49e8-a544-b2cbebd4064f",
"OData__x005f_ModerationStatus": "Approved",
"OData__x005f_Level": "1",
"UniqueId": "3dba6291-92c7-458f-9a28-e0a91696d9ca",
"FSObjType": "1",
...
},
"FileSystemObjectType": 1,
"Id": 383,
"ContentTypeId": "0x0120000E7EB3018A9074468823208C432BDCA5",
"Title": null,
"IsMyDocuments": null,
"SharedWithInternalId": null,
"SharedWithUsersId": {
"__metadata": {
"type": "Collection(Edm.Int32)"
},
"results": [5]
},
... }
}
從上面的JSON(我已經ofcourse改變,但它是一個真正的響應) ,我需要在「FieldValuesAsText」對象下更改「SharedWithUsers」的值。
這可能嗎?我一直在嘗試,甚至是調用返回成功響應代碼,但它不會改變任何東西。
另一方面,如果我在第一級更改字段,那麼我的意思是像「標題」這樣的字段,它會成功更改。
然而(不是我的理解),像第一級中的「SharedWithUsersId」這樣的值也不會改變。儘管我也獲得了相同的成功響應代碼。
我創建POST數據如下,
對於標題(就像一個魅力!我已經閱讀每一個博客,是指這個例子!)
{
"__metadata": {
"type": "SP.Data.DocumentsItem"
},
"Title":"Blabla"
}
對於SharedWithUsers場FieldValuesForEdit下OR FieldValuesAsText
{
"__metadata": {
"type": "SP.Data.DocumentsItem"
},
"FieldValuesForEdit": {
"__metadata": {
"type": "SP.FieldStringValues"
},
"SharedWithUsers": ""
}
}
我已驗證SharedWithUsers的值爲「」時,它不包含任何數據(樣本JSON我已經發布證實了這一點),但使用此類數據的POST調用不會更新它。
對於SharedWithUsersId
{
"__metadata": {
"type": "SP.Data.DocumentsItem"
},
"SharedWithUsersId": {
"__metadata": {
"type": "Collection(Edm.Int32)"
},
"results": []
}
}
注意這裏,在這種情況下>>>「SharedWithUsersId」:空也不起作用,即使我自己罪惡的眼睛已經看到了一些項目這樣的反應! (所有冰雹微軟!!!)
對於上述所有POST數據JSON對象,我得到一個204響應代碼(我認爲這是一個MERGE調用正確的代碼)
我希望我已經解釋我的問題不夠好。任何或所有的幫助表示讚賞!
你說的 「一定」 的意思,你可以請更新您的問題並指定,例如,字段類型? – 2014-09-02 13:28:41
@VadimGremyachev我已更新的問題。我希望我說得很清楚。 – 2014-09-02 17:58:29
看到我的最終目標是通過REST API更新項目的共享細節 – 2014-09-02 18:02:50