A função Fn::Jq usa a sintaxe jq para filtrar valores em uma string JSON.
Declaração
-
JSON
{ "Fn::Jq": [ method, script, object ] } -
YAML
-
Sintaxe do nome completo da função:
Fn::Jq: method,script,object -
Sintaxe da forma abreviada:
!Jq [method,script,object]
-
Parâmetros
-
method: Obrigatório. String.Valores válidos:
First: primeiro valor correspondente ao filtro.
All: todos os valores correspondentes ao filtro.
script: Obrigatório. String. Script jq usado como filtro para a string JSON. Para mais informações sobre o jq, consulte o Manual do jq (versão de desenvolvimento).object: Obrigatório. String JSON a filtrar.
Valor de retorno
Valores filtrados da string JSON.
Exemplos
Filtro único
Este exemplo retorna o primeiro valor correspondente ao filtro .test. O valor associado à chave test na string JSON é retornado. Se o valor não existir, o retorno será null.
!Jq
- First
- .test
- '{"test":"test"}'
Resultado:
test
Múltiplos filtros
Separe vários filtros com barras verticais (|).
Neste exemplo, a saída do filtro .parameters[] é direcionada a um segundo filtro por meio de uma barra vertical (|). O filtro .parameters[] extrai cada elemento do array parameters, e o segundo filtro, {"param_name": .name, "param_type":.type}, remodela cada elemento em um objeto com as chaves param_name e param_type. Se nenhum valor corresponder, o resultado será 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
Resultado:
- param_name: PKG_TAG_NAME
- param_name: GIT_COMMIT
- param_name: TRIGGERED_JOB