如何使用Java SDK更新SharePoint列表项的选项值
要解决这个问题,你只需要通过FieldValueSet的additionalDataManager()同时添加集合字段的OData类型声明和字段值即可,SDK的additionalDataManager()支持处理这类未在模型中定义的注解属性。
具体实现代码
ListItem listItem = new ListItem(); FieldValueSet fieldValueSet = new FieldValueSet(); // 1. 添加集合字段的OData类型注解 fieldValueSet.additionalDataManager().put("myCollectionField@odata.type", new JsonPrimitive("Collection(Edm.String)")); // 2. 构造集合字段的数值数组 JsonArray collectionValues = new JsonArray(); collectionValues.add(new JsonPrimitive("VALUE 1")); collectionValues.add(new JsonPrimitive("VALUE 2")); fieldValueSet.additionalDataManager().put("myCollectionField", collectionValues); // 3. 调用Graph API执行更新操作 graphClient.sites("{site-id}").lists("{list-id}").items("{item-id}").fields() .buildRequest() .patch(fieldValueSet);
关键说明
- 这里的
myCollectionField需要替换为你SharePoint列表字段的内部名称,而非字段的显示名称,否则API会无法识别。 - 通过
additionalDataManager()存入的键值对会直接映射到请求体中的JSON属性,包括@odata.type这类特殊注解,最终生成的请求体和你手动调用REST API的格式完全一致。
内容的提问来源于stack exchange,提问作者Vitor Santos
相关产品推荐
相关产品推荐

