JSON请求报错:Parent Option对象中无有效'id'或'value',求助技术排查
问题分析与解决方案
问题描述
提交的Jira Issue创建/更新JSON如下:
{"fields": {"project": {"key": "DCIPTQA"},"customfield_17304": [{"set": {"value": "[entry.systemsIntegrationComplexity.label]"}}],"customfield_13750": [{"set": {"value": "[entry.f1.Type1.label]"}}],"customfield_17305": [{"set": {"value": "[entry.externalSystems.label]"}}],"issuetype": {"name": "Program Intake"}}}
返回错误:
{"errorMessages": [],"errors": {"customfield_17304": "在Parent Option对象中未找到有效的'id'或'value'。","customfield_13750": "在Parent Option对象中未找到有效的'id'或'value'。","customfield_17305": "在Parent Option对象中未找到有效的'id'或'value'。"}}
核心原因
这三个自定义字段是级联选择框(Select List (Cascading)),这类字段的取值逻辑和普通单选/多选字段不同,当前报错来自两个关键问题:
1. 模板占位符未被正确解析
[entry.systemsIntegrationComplexity.label]这类字符串是模板变量,若工具未将其替换为Jira中实际存在的父选项值/ID,Jira会直接把它当作无效选项,触发报错。
2. 级联字段的格式错误
级联选择框不支持当前用数组包裹set对象的格式,需根据操作类型(创建/更新)调整结构:
- 创建Issue时,字段值直接传递包含父选项(及可选子选项)的对象;
- 更新Issue时,若用
update字段,set内部需包含父选项(及可选子选项)的完整结构。
修复步骤
- 确认变量替换有效性:确保
[entry.systemsIntegrationComplexity.label]等占位符被替换为Jira对应字段已存在的父选项显示值或ID(优先用ID,避免值重复冲突)。 - 修正JSON结构:
- 示例创建Issue的正确JSON:
{ "fields": { "project": {"key": "DCIPTQA"}, "customfield_17304": {"value": "集成复杂度高"}, "customfield_13750": {"value": "Type1有效选项值"}, "customfield_17305": {"value": "外部系统A", "child": {"value": "子系统A1"}}, "issuetype": {"name": "Program Intake"} } } - 示例更新Issue的正确JSON:
{ "update": { "customfield_17304": [{"set": {"value": "集成复杂度高"}}], "customfield_13750": [{"set": {"value": "Type1有效选项值"}}], "customfield_17305": [{"set": {"value": "外部系统A", "child": {"value": "子系统A1"}}}] } }
- 示例创建Issue的正确JSON:
- 验证选项合法性:可通过Jira接口
GET /rest/api/2/field/{fieldId}/option查询目标字段的所有有效选项,确认你使用的value/id确实存在。
内容的提问来源于stack exchange,提问作者Rk5
相关产品推荐
相关产品推荐

