GNU/Linux >> Belajar Linux >  >> Linux

Parsing Satu Bidang Dari Json Array Ke Bash Array?

Saya memiliki output JSON yang berisi daftar objek yang disimpan dalam variabel. (Saya mungkin tidak mengatakannya dengan benar)

[
  {
    "item1": "value1",
    "item2": "value2",
    "sub items": [
      {
        "subitem": "subvalue"
      }
    ]
  },
  {
    "item1": "value1_2",
    "item2": "value2_2",
    "sub items_2": [
      {
        "subitem_2": "subvalue_2"
      }
    ]
  }
]

Saya membutuhkan semua nilai untuk item2 dalam larik agar skrip bash dapat dijalankan di ubuntu 14.04.1.

Saya telah menemukan banyak cara untuk memasukkan seluruh hasil ke dalam array tetapi bukan hanya item yang saya butuhkan

Jawaban yang Diterima:

Menggunakan jq :

$ cat json
[
  {
    "item1": "value1",
    "item2": "value2",
    "sub items": [
      {
        "subitem": "subvalue"
      }
    ]
  },
  {
    "item1": "value1_2",
    "item2": "value2_2",
    "sub items_2": [
      {
        "subitem_2": "subvalue_2"
      }
    ]
  }
]

KODE:

arr=( $(jq -r '.[].item2' json) )
printf '%sn' "${arr[@]}"

OUTPUT:

value2
value2_2

Linux
  1. Bagaimana Cara Membuat Array Elemen Unik Dari String/array Di Bash?

  2. Array di Bash Tidak Ditemukan

  3. Bagaimana cara mengurai file CSV di Bash?

  1. Jalankan skrip bash dari URL

  2. konversi keluaran bash `ls` ke array json

  3. Konversikan string teks dalam bash ke array

  1. Bash Array Dari Array?

  2. bash - mengembalikan array dari fungsi dan menampilkan konten

  3. Ekstrak jalur yang hilang dari bash array jalur