GNU/Linux >> Belajar Linux >  >> Linux

Menggunakan jq untuk mengambil nilai kunci dari keluaran json

Anda perlu menggabungkan filter melalui | operator:

$ jq -r '.[] | .[] | .name' test.json 
rhel6.6
rhel7

.[] pertama mengambil repositories Himpunan. .[] berikutnya mengambil semua item dari repositories Himpunan. Terakhir, .name mengekstrak properti dari item array (objek).

Perhatikan, .[] pertama bekerja pada objek karena ini adalah fitur terdokumentasi:

.[]
    If you use the .[index] syntax, but omit the index entirely, it
    will return all of the elements of an array...

    You can also use this on an object, and it will return all the
    values of the object.

Anda ingin melihat larik repositori alih-alih memperlakukan input sebagai larik:

$ jq -r '.repositories[].name' file
rhel6.6
rhel7

Linux
  1. Menghapus Redundansi Dari Kolom Keluaran?

  2. Menggunakan Windows DLL dari Linux

  3. Pisahkan keluaran perintah dengan kolom menggunakan Bash?

  1. Array di Bash Tidak Ditemukan

  2. Menggunakan output dari perintah sebelumnya di bash

  3. konversi keluaran bash `ls` ke array json

  1. MYSQL berbeda dalam Keluaran dari skrip

  2. Dekripsi dari teks sandi yang dienkripsi menggunakan RSA

  3. SSH dari A sampai B ke C, menggunakan kunci privat di B