我有一些Java REST API,它们将通过JIRA Webhook配置调用。 现在,当JIRA webhook调用REST API时,有大量的没有。包含有用数据的自定义字段(如customfield_17270)。
例如,我在JIRA webhook中配置了“创建问题”事件,即只要在JIRA中创建任何问题,我的REST API就会被调用。例如,在JIRA中创建问题时,会有一个名为“Issue Title”的字段,其值为“XXX”。在JSON有效负载中,理想情况下,键值对应为“问题标题”:“XXX”,但它类似于“Custom_Field109”:“XXX”。
现在的问题是如何将这个动态JSON映射到Java Object。
是否有人遇到类似的问题。
答案 0 :(得分:0)
每次收到webhook时,您都需要通过查询 GET中的field JIRA REST API将每个自定义ID(例如customfield_10070
)映射到其名称: /休息/ API / 2 /字段强>
...会给你这样的东西:
[
{
"id": "issuetype",
"name": "Issue Type",
"custom": false,
"orderable": true,
"navigable": true,
"searchable": true,
"clauseNames": [
"issuetype",
"type"
],
"schema": {
"type": "issuetype",
"system": "issuetype"
}
},
{
"id": "customfield_10070",
"name": "FAQ Necessary?",
"custom": true,
"orderable": true,
"navigable": true,
"searchable": true,
"clauseNames": [
"cf[10070]",
"FAQ Necessary?"
],
"schema": {
"type": "string",
"custom": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons",
"customId": 10070
}
},
...
]
然后,您应该可以轻松地遍历webhook JSON中的字段,并将自定义字段ID映射到其显示名称。
答案 1 :(得分:0)
我能够与JIRA内部团队讨论这个问题,他们为我提供了自定义字段映射到他们的JIRA显示名称。 基本上,当我们收到像Custom_field109这样的Json密钥时,它意味着109是该属性的内部数据库ID 现在,基于给定的映射,我解析了JSON以获取所需的密钥,然后通过Jackson库,我能够将JSOn映射到Java。