自動化スマート値 - JSON 関数
次のスマート値によって、ルール設定時に課題フィールドを JSON 形式に変換できます。通常、この方法は詳細なフィールド編集と [発信用 Web リクエストを送信する] アクションで使用されます。
Jira Automation テンプレート ライブラリでスマート バリューを使用する方法をご確認ください。
以下の例では、課題に 2 つのバージョン (バージョン 2.0 とバージョン 3.0) があり、Decision というカスタムの単一選択で値 Yes,
が選択され、要約のタイトルが Hello World
であると想定しています。
asJsonString
適用先: テキスト形式のフィールドと値
JSON 形式でテキスト プロパティを文字列としてレンダリングします。これにより、文字列内のすべての特殊文字がエスケープされます。
{{issue.fixVersions.first.name.asJsonString}}
// Produces
"Version 2.0"
{{issue.summary.asJsonString}}
// Produces
"Hello World"
{{issue.Decision.value.asJsonString}}
// Produces
"Yes"
asJsonStringArray
適用先: テキスト/数字タイプの値のリスト
値のリストを JSON でエンコードされた値のリストに変換するか、数字のリストを JSON でエンコードされた文字列のリストに変換します。
{{issue.fixVersions.name.asJsonStringArray}}
// Produces
["Version 2.0","Version 3.0"]
{{issue.fixVersions.id.asJsonStringArray}}
// Produces
["10046","10047"]
asJsonArray
適用先: 数字タイプの値のリスト
数値のリストを JSON でエンコードされたリストに変換します。
以下の 2 つ目の例では、テキスト機能を利用して各修正バージョンから version という語を削除します。こうすることで、返されたリスト (「2.0」および「3.0」) を、asJsonArray
を使用して数字のリストに変換できます。
正しくレンダリングされないため、テキスト値のリストにこの関数を使わないでください。
{{issue.fixVersions.id.asJsonArray}}
// Produces
[10046,10047]
{{issue.fixVersions.name.right(3).asJsonArray}}
// Produces
[2.0,3.0]
asJsonObject(keyName)
適用先: テキスト形式のフィールドと値
テキスト値を JSON キーと値のペア オブジェクトに変換します。keyName プロパティは、以下のとおり、フィールド名として使用されます。
{{issue.summary.asJsonObject("title")}}
// Produces
{ "title": "Hello World" }
{{issue.Decision.value.asJsonObject("implementing")}}
// Produces
{ "implementing": "Yes" }
{{issue.fixVersions.first.name.asJsonObject("title")}}
// Produces
{ "title": "Version 2.0" }
asJsonObjectArray(keyName)
適用先: オブジェクトのリスト (fixVersions やカスタムの複数選択)
オブジェクトの 1 つの属性を JSON キーと値のペア オブジェクトに抽出できます。
この関数では、キーの名前を変更できません。変更するには、この関数を他の関数とチェーンする必要があります。
以下の例では、2 つの値 ("Bob" と "Jill") が選択されている複数選択のカスタム フィールドを使用して、別のフィールドでどのように機能するかが示されています。複数選択のカスタム フィールドは、ID と値のプロパティを持つオブジェクト リストです。
{{issue.fixVersions.asJsonObjectArray("name")}}
// Produces
[{ "name": "Version 2.0" },{ "name": "Version 3.0" }]
{{issue.customfield_10099.asJsonObjectArray("value")}}
// Produces
[{ "value": "Bob" },{ "value": "Jill" }]
xmlToJson(xmlString)
適用対象: 「Web リクエストを送信」アクションの
{{webResponse}}
や「受信 Webhook」トリガーの{{webhookData}}
など、XML データを返すスマート値すべて。
XML データの文字列表現を受け取り、JSON オブジェクトに変換します。これにより、ドット表記を使用して XML データのプロパティにアクセスできます。
例
ルールで「Web リクエストを送信」アクションを使用しているとします。このデータに JSON としてアクセスするには、{{xmlToJson(webResponse.body)}}
を使用します。
XML にブロック <item>Hello World</item>
が含まれている場合、スマート値 {{xmlTojson(webResponse.body).item}}
は「Hello World」という文字列を返します。
jsonStringToObject()
JSON 形式の文字列を JSON オブジェクトに変換します。オブジェクトのキーにはドット表記でアクセスできます。
{{jsonStringToObject(webResponse.body)}} -> {value=Hello World!}
ここで、WebResponse.body のスマート バリューは次のように返されます。
{"value": "Hello World!"}
次のような、配列の配列は機能しません。
{"value": { {"key1": "val1", "key2": "val2"}, {"key3": "val3", "key4": "val4"} } }
配列のオブジェクトなら機能します。
{"value": [ {"key1": "val1", "key2": "val2"}, {"key3": "val3", "key4": "val4"} ] }
関数をチェーンする
上の 2 つの関数を連結して、オブジェクトからプロパティを取得し、JSON のキー値ペアに変換ます。このとき、キーの名前も変更します。
次の例では、fixVersions というネームプロパティを選択しています。
{{issue.fixVersions.name.asJsonObject("title").asJsonArray}}
// Produces
[{ "title": "Version 2.0" },{ "title": "Version 3.0" }]
以下の例では、直接 asJsonStringArray を使って同じ結果を得ていますが、関数をつなげて目当ての値を返す方法を示しています。
{{issue.fixVersions.name.asJsonString.asJsonArray}}
// Produces
["Version 2.0","Version 3.0"]
この内容はお役に立ちましたか?