These smart value functions are for converting issue fields into the JSON format, usually used in advanced field editing and send web request.
The following documentation examples are assuming an issue with two versions ("Version 2.0" and "Version 3.0"), a custom single select called Decision with a selected value of "Yes" and a summary titled "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"]