调用内部函数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