如何将Json(来自JIRA的webhook)转换为Custom Java对象

时间:2016-07-13 12:06:56

标签: json jira webhooks

我有一些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。

是否有人遇到类似的问题。

2 个答案:

答案 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。