Jira API 创建 Issue 时如何指定自定义字段?

之芳~ 阅读 33

我用 Jira 的 REST API 创建 Issue,普通字段比如 summary、issuetype 都能正常传,但一加自定义字段就报错。官方文档说要用 customfield_xxx 的格式,但我试了还是不行。

比如我的自定义字段 ID 是 customfield_10056,类型是单选列表,我这样传:

{
  "fields": {
    "project": { "key": "PROJ" },
    "summary": "测试任务",
    "issuetype": { "name": "Task" },
    "customfield_10056": { "value": "选项A" }
  }
}

结果返回 400 错误,说“字段值无效”。是不是格式不对?还是得用 ID 而不是 value?

我来解答 赞 5 收藏
二维码
手机扫码查看
2 条解答
司马宏骞
问题出在选项值上,不是格式问题。你传的 {"value": "选项A"} 格式本身是对的,但 Jira 报错说字段值无效,意思是“选项A”这个值在那个自定义字段里根本不存在。可能是拼写不对,或者选项在 Jira 后台已经被改过了。

解决方法:

先调一下接口确认这个字段到底有哪些有效选项:

GET /rest/api/2/field


返回结果里找到 customfield_10056 那个字段,看它的 allowedValues 数组,里面列的就是真正能传的值。

另外提醒一点,单选列表字段有些情况下得用 id 而不是 value>,格式变成这样:

"customfield_10056": {"id": "10057"}


具体用哪个,看你从上面那个接口拿到的 allowedValues 里的数据结构,它给你返回的是 id 还是 value,你就用哪个。

还有个小坑:Jira Cloud 和 Jira Server/Data Center 对自定义字段的格式处理不太一样,如果你用的是 Cloud 版本,有些字段可能必须走 optionId 那种嵌套结构。
点赞
2026-03-13 04:04
宇杰 Dev
单选列表的格式本身没问题,大概率是选项值不匹配。Jira 对选项值是精确匹配的,大小写、空格全算,你确认下那个选项在 Jira 里到底叫啥。

实在不行就用 id 传,先调个接口查下这个字段的可选值:

GET /rest/api/2/field/customfield_10056/option


然后改成这样传:

{
"fields": {
"project": { "key": "PROJ" },
"summary": "测试任务",
"issuetype": { "name": "Task" },
"customfield_10056": { "id": "选项的ID" }
}
}


还有个坑,确认这个自定义字段已经加到项目对应的 Field Configuration 里了,不然 API 直接报无效。
点赞 3
2026-03-01 20:00