2016-07-13 17 views
0

JIRA Webhookの設定で呼び出されるいくつかのJava REST APIがあります。 JIRA webhookがREST APIを呼び出すと、大きな番号があります。便利なデータを含むカスタムフィールド(customfield_17270など)(JIRAのウェブフックから)JsonをカスタムJavaオブジェクトに変換する方法

たとえば、JIRA Webフックで「問題の作成」イベントを設定しました。つまり、JIRAで問題が作成されるたびに、REST APIが呼び出されます。たとえば、JIRAで問題を作成しているときに、値が「XXX」の「Issue Title」というフィールドがあります。 JSONペイロードでは、キーと値のペアが "Issue Title":理想的には "XXX"ですが、 "Custom_Field109": "XXX"のようになります。

ここで問題は、この動的jsonをJavaオブジェクトにマップする方法です。

同様の問題に直面している人はいますか?ありがとう。

答えて

0

あなたがウェブフックを受けるたびに、あなたはfield JIRA REST APIGETを照会することによって、それの名前に(例えばcustomfield_10070)各カスタムIDをマップする必要があります:/休憩/ API/2 /フィールド

..あなたは、簡単にウェブフックのJSONからフィールドを反復し、その表示名にカスタムフィールドIDをマッピングすることができるはず

[ 
    { 
     "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 
     } 
    }, 
    ... 
] 

:.whichはあなたにこのような何かを与えるだろう。

+0

実際のフィールド名を取得するためのREST APIがあります。ところで、私はJIRAの内部チームと調整することができ、JIRAデータベーステーブルからデータを取得することで、表示名にカスタムフィールドマッピングを提供しました。 –

0

私はこの問題をJIRA内部チームと議論することができ、JIRAの表示名にカスタムフィールドマッピングを提供しました。 基本的に、Custom_field109のようなJsonキーを受け取ると、109はこの属性の内部データベースIDです。
与えられたマッピングに基づいて、必要なキーを取得するためにJSONを解析し、次にJacksonライブラリを使用してJSOnをJavaにマップすることができました。

+0

JSONの解析とJavaオブジェクトの作成のコードを提供できますか? – Datz

関連する問題