La fonction Fn::Jq utilise la syntaxe jq pour filtrer les valeurs d'une chaîne JSON.
Déclaration
-
JSON
{ "Fn::Jq": [ method, script, object ] } -
YAML
-
Syntaxe du nom complet de la fonction :
Fn::Jq: method,script,object -
Syntaxe de la forme abrégée :
!Jq [method,script,object]
-
Paramètres
-
method: Obligatoire. Chaîne.Valeurs acceptées :
First : première valeur correspondant au filtre
All : toutes les valeurs correspondant au filtre
script: Obligatoire. Chaîne. Script jq servant de filtre pour la chaîne JSON. Pour plus d'informations sur jq, consultez le Manuel jq (version de développement).object: Obligatoire. Chaîne JSON à filtrer.
Valeur renvoyée
Les valeurs filtrées extraites de la chaîne JSON.
Exemples
Filtre unique
Cet exemple renvoie la première valeur correspondant au filtre .test. La valeur associée à la clé test dans la chaîne JSON est renvoyée. Si cette valeur n'existe pas, la fonction renvoie null.
!Jq
- First
- .test
- '{"test":"test"}'
Résultat :
test
Filtres multiples
Séparez les filtres par des barres verticales (|).
Dans cet exemple, la sortie du filtre .parameters[] est transmise à un second filtre via une barre verticale (|). Le filtre .parameters[] extrait chaque élément du tableau parameters, et le second filtre {"param_name": .name, "param_type":.type} restructure chaque élément en un objet contenant les clés param_name et param_type. Si aucune valeur ne correspond, la fonction renvoie 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
Résultat :
- param_name: PKG_TAG_NAME
- param_name: GIT_COMMIT
- param_name: TRIGGERED_JOB