Rumah >Tutorial sistem >LINUX >Contoh penggunaan arahan JQ dalam Linux
JSON ialah format perwakilan data yang digunakan untuk menyimpan dan memindahkan data antara lapisan aplikasi yang berbeza; ia menyimpan data dalam pasangan kunci:nilai. Dalam artikel ini, kita akan belajar menggunakan arahan JQ untuk memanipulasi dan memproses data JSON dalam shell.
Gunakan arahan berikut untuk memasang jq
pada Centos8:
[root@localhost ~]# dnf -y install jq
Sekarang kita boleh mula menggunakan arahan JQ kerana ia telah berjaya dipasang pada sistem kita, tetapi pertama sekali, mari kita lihat sintaks arahan JQ:
jq [options] [file...] jq [options] --args [strings...] jq [options] --jsonargs [JSON_TEXTS...]
Arahan JQ boleh digunakan dalam pelbagai cara; ia boleh digunakan secara langsung pada fail JSON atau digabungkan dengan beberapa perintah lain untuk mentafsir data JSON. Perintah JQ boleh digunakan dengan penapis yang berbeza seperti penapis ".", "|", "," atau ".[]" untuk menyusun data JSON.
Arahan JQ juga mengambil pilihan berbeza sebagai parameter seperti –tab, –stream, –indent n, –unbuffered dan pilihan direktori -L. Sintaks arahan JQ mungkin kelihatan rumit pada mulanya, tetapi anda akan terbiasa dengannya selepas membaca keseluruhan artikel.
Ciri penapis arahan JQ yang paling mudah dan paling biasa digunakan. Ia digunakan untuk menyusun dan mencantikkan data JSON apabila mencetaknya ke output standard.
Dalam contoh ini, kami mempunyai fail JSON yang dipanggil employee.json dan kami perlu mengeluarkan data kepada output standard:
{"workers":{"name": "John Brooks","id": "003"}}
Kita boleh menggunakan arahan kucing untuk memaparkan data:
[root@localhost ~]# cat employee.json {"workers":{"name": "John Brooks","id": "003"}}
Data yang dicetak ke output standard menggunakan arahan kucing tidak teratur dan mengelirukan. Kita boleh menggunakan arahan JQ dan "." untuk menyusun data ini, dan menggunakan .
untuk menapis:
[root@localhost ~]# jq '.' employee.json { "workers": { "name": "John Brooks", "id": "003" } }
Kini data lebih teratur, berwarna-warni dan lebih mudah difahami. Penapis ini amat diperlukan apabila mengakses data daripada API data yang disimpan dalam API boleh menjadi sangat tidak teratur dan mengelirukan.
.字段
Penapis dan arahan JQ boleh digunakan untuk mengakses sifat objek dalam cangkerang.
Jika kita hanya mahu mengakses satu hartanah dan mencetaknya ke output standard, maka kita boleh menggunakan operator .字段
. Sebagai contoh, untuk mengakses sifat pekerja kita boleh menggunakan arahan berikut:
[root@localhost ~]# jq '.workers' employee.json { "name": "John Brooks", "id": "003" }
Kami juga boleh mengakses item yang terdapat dalam hartanah menggunakan pengendali .字段
. Untuk mengakses item nama dalam atribut pekerja kami akan menggunakan:
[root@localhost ~]# jq '.workers.name' employee.json "John Brooks"
Kami juga boleh mengakses dan mengeluarkan elemen yang terdapat dalam tatasusunan dalam fail JSON menggunakan operator .[]
. Untuk contoh ini, kami akan mengubah suai fail JSON kami dan menambah yang berikut:
[{"name": "John Brooks","id": "003"},{"name": "Randy Park","id": "053"},{"name": "Todd Gray","id": "009"}]
Semak fail employee.json:
[root@localhost ~]# cat employee.json [{"name": "John Brooks","id": "003"},{"name": "Randy Park","id": "053"},{"name": "Todd Gray","id": "009"}]
要输出 JSON 文件中存在的所有数组,我们将运行以下命令:
[root@localhost ~]# jq '.[]' employee.json { "name": "John Brooks", "id": "003" } { "name": "Randy Park", "id": "053" } { "name": "Todd Gray", "id": "009" }
要仅输出第二个数组,我们可以通过以下方式修改上述命令:
[root@localhost ~]# jq '.[1]' employee.json { "name": "Randy Park", "id": "053" }
请记住,数组从索引 0 开始的。
我们还可以使用 .字段
运算符访问数组中存在的属性。例如,如果我们想访问第三个数组中的 name 属性,那么我们将运行以下命令:
[root@localhost ~]# jq '.[2].name' employee.json "Todd Gray"
类似地,要访问数组中的所有名称属性,我们可以执行以下命令:
[root@localhost ~]# jq '.[].name' employee.json "John Brooks" "Randy Park" "Todd Gray"
JQ 命令用于将 JSON 数据转换为更易读的格式并将其打印到 Linux 上的标准输出。JQ 命令是围绕过滤器构建的,过滤器用于从 JSON 文件中仅查找和打印所需的数据。
Atas ialah kandungan terperinci Contoh penggunaan arahan JQ dalam Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!