GNU/Linux >> Linux の 問題 >  >> Linux

Json配列からBash配列に1つのフィールドを解析しますか?

変数に格納されているオブジェクトのリストを含むJSON出力があります。 (私はその権利を言い表していないかもしれません)

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

ubuntu 14.04.1でbashスクリプトを実行するには、配列内のitem2のすべての値が必要です。

必要なアイテムだけでなく、結果全体を配列にまとめる方法をたくさん見つけました

承認された回答:

jqの使用:

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

コード:

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

出力:

value2
value2_2

Linux
  1. Bashの文字列/配列から一意の要素の配列を作成するにはどうすればよいですか?

  2. 配列のBash配列?

  3. 解析からラックスペースへの移行

  1. Bash の配列が見つかりません

  2. URLからbashスクリプトを実行

  3. bash から apachectl を起動する

  1. awk の bash キャプチャ出力を配列に

  2. bash:リスト ファイルを変数に入れますが、配列のサイズは 1 です

  3. bash - 関数から配列を返し、内容を表示する