組み込み関数 Fn::Jq 関数は、jq 機能をサポートし、フィルターを使用して JSON 文字列の値をソートするために使用されます。
宣言
JSON
{ "Fn::Jq": [ method, script, object ] }YAML
完全な関数名の構文:
Fn::Jq: method,script,object短縮形の構文:
!Jq [method,script,object]
パラメーター
method: 必須。パラメーター値は String 型である必要があります。有効な値:
First: フィルターによってソートされた最初の値
All: フィルターによってソートされたすべての値
script: 必須。パラメーター値は String 型である必要があります。このパラメーターは、JSON 文字列の値をソートするためのフィルターとして使用する jq スクリプトを指定します。 jq 機能の詳細については、jq Manual (development version) をご参照ください。object: 必須。このパラメーターは JSON 文字列を指定します。
戻り値
フィルターによってソートされた文字列内の値。
例
単一フィルター
次の例では、関数は .test フィルターによってソートされた最初の値を返します。 JSON 文字列を指定すると、test キーの値が返されます。値が存在しない場合は、null が返されます。
!Jq
- First
- .test
- '{"test":"test"}'結果:
test複数フィルター
複数のフィルターは縦棒(|)で区切ります。
次の例では、.parameters[] フィルターによってソートされた値が別のフィルターによってソートされます。フィルターは縦棒(|)で区切られます。 JSON 文字列を指定すると、.parameters[] | {"param_name": .name, "param_type":.type} キーの値が返されます。値が存在しない場合は、null が返されます。フィルターに基づいて parameters キーの値を確認して、最初の戻り値を取得する必要があります。戻り値で、name キーと type キーの値を確認して、最終的な戻り値を取得する必要があります。フィルターによって値がソートされない場合は、null が返されます。
!Jq
- All
- '.parameters[] | {"param_name": .name, "param_type":.type}'
- changeSet:
items: []
kind: git
id: 2013-12-27_00-09-37
parameters:
- name: PKG_TAG_NAME
value: trunk
- name: GIT_COMMIT
value: master
- name: TRIGGERED_JOB
value: trunk-buildall結果:
- param_name: PKG_TAG_NAME
- param_name: GIT_COMMIT
- param_name: TRIGGERED_JOB