調用內建函式Fn::Jq,支援Jq功能,擷取滿足過濾條件後的JSON字串。
函式宣告
JSON
{ "Fn::Jq": [ method, script, object ] }
YAML
完整函數的文法。
Fn::Jq: method,script,object
縮寫形式。
!Jq [method,script,object]
參數資訊
method
:必選,字串類型。取值:
First:合格第一個值。
All:合格所有值。
script
:必選,字串類型。Jq指令碼,可作為JSON字串的過濾器。Jq功能詳情請參見Jq文檔。object
:必選,JSON字串。
傳回值
滿足過濾器條件的字串。
使用樣本
單個過濾器
使用過濾器.test
過濾出的值取第一個。當給定一個JSON字串作為輸入時,它將在鍵test
處產生值;如果值不存在,則為null。
!Jq
- First
- .test
- '{"test":"test"}'
傳回值:
test
多個過濾器
說明
多個過濾器之間可使用豎線(|)進行串連。
使用過濾器.parameters[]
過濾出的內容,再次通過新的過濾器進行過濾,它們之間通過豎線(|)進行串連。給定一個JSON字串作為輸入時,它將按照順序在滿足過濾器條件.parameters[]
和{"param_name": .name, "param_type":.type}
的鍵處產生值;如果值不存在,則為null。您需要根據過濾器條件先查看Key為parameters的值,再在傳回值中尋找滿足Key為name和Key為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