JSON functions 1
次のスマート値関数は、課題フィールドを JSON 形式に変換するためのものです。通常は、詳細なフィールド編集や Web リクエストの送信で使用されます。
次のドキュメントの例では、2 つのバージョン (Version 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 でエンコードされた値のリストに変換するために使用されます。また、次の 2 番目の例に示すように、数値のリストを 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" }]
関数をチェーンする
この例では、上の 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"]