Fungsi bawaan Fn::Jq digunakan untuk mendukung fitur jq dan menyaring nilai dalam string JSON menggunakan filter.
Deklarasi
JSON
{ "Fn::Jq": [ method, script, object ] }YAML
Sintaks untuk nama fungsi lengkap:
Fn::Jq: method,script,objectSintaks untuk bentuk pendek:
!Jq [method,script,object]
Parameter
method: Diperlukan. Nilai parameter harus bertipe String.Nilai yang valid:
First: nilai pertama yang diurutkan oleh filter.
All: semua nilai yang diurutkan oleh filter.
script: Diperlukan. Nilai parameter harus bertipe String. Parameter ini menentukan skrip jq yang digunakan sebagai filter untuk menyaring nilai dalam string JSON. Untuk informasi lebih lanjut tentang fitur jq, lihat Manual jq (versi pengembangan).object: Diperlukan. Parameter ini menentukan string JSON.
Nilai kembali
Nilai dalam string yang diurutkan oleh filter.
Contoh
Filter tunggal
Pada contoh berikut, fungsi mengembalikan nilai pertama yang diurutkan oleh filter .test. Saat Anda menentukan string JSON, nilai pada kunci test dikembalikan. Jika nilai tidak ada, null dikembalikan.
!Jq
- First
- .test
- '{"test":"test"}'Hasil:
testFilter ganda
Pisahkan beberapa filter dengan tanda batang vertikal (|).
Pada contoh berikut, nilai yang diurutkan oleh filter .parameters[] diurutkan oleh filter lainnya. Filter dipisahkan oleh tanda batang vertikal (|). Saat Anda menentukan string JSON, nilai pada kunci .parameters[] | {"param_name": .name, "param_type":.type} dikembalikan. Jika nilai tidak ada, null dikembalikan. Anda harus memeriksa nilai yang Key-nya adalah parameters berdasarkan filter untuk mendapatkan nilai awal yang dikembalikan. Pada nilai-nilai yang dikembalikan, Anda harus memeriksa nilai yang Key-nya adalah name dan type untuk mendapatkan nilai akhir yang dikembalikan. Jika tidak ada nilai yang diurutkan oleh filter, null dikembalikan.
!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-buildallHasil:
- param_name: PKG_TAG_NAME
- param_name: GIT_COMMIT
- param_name: TRIGGERED_JOB