向Lookup字段创建(非更新)新条目失败,求代码排查
嘿,我来帮你搞定这个SharePoint REST API创建带Lookup字段列表项的报错问题!
问题根源分析
你碰到的An unexpected 'StartObject' node was found错误,说白了就是你的JSON请求体格式不对——你大概率给Lookup字段传了嵌套对象,但SharePoint REST API在创建条目时,对Lookup字段的格式要求很明确:必须用「字段内部名称+Id」作为键,值直接填关联列表项的整数Id就行。
正确的请求示例
假设你要创建的列表叫Answers,Lookup关联的是Questions列表,目标Question的Id是123,那你的POST请求Body应该写成这样:
{ "Title": "我的测试回答", "questionRelationId": 123 }
避坑提醒:别这么写!
很多人会不自觉地写成嵌套对象,这就是触发错误的核心原因,比如下面这种写法绝对要避免:
// ❌ 错误示范:传了嵌套对象而非纯Id值 { "Title": "我的测试回答", "questionRelation": { "Id": 123 } }
额外注意事项
- 一定要严格匹配字段的内部名称加
Id:你的Lookup字段内部名是questionRelation,所以键名必须是questionRelationId,SharePoint对字段名大小写敏感,别写错! - 确认请求端点正确:比如
/_api/web/lists/getbytitle('你的目标列表名')/items - 请求头要配置正确:如果是旧版REST API用
Content-Type: application/json;odata=verbose,新版可以用application/json;odata=nometadata简化模式。
调整完JSON格式再发起请求,应该就能成功创建带Lookup关联的新条目啦!
内容的提问来源于stack exchange,提问作者AllramEst
相关产品推荐
相关产品推荐

