🖥

#jq コマンドで #JSON の ネストされた配列の中のオブジェクトの中の配列からちょっと複雑な検索をする ( select filte

2019/04/12に公開
  • Github Issue API で得られるようなリストを想定
  • JSON全体が配列である
  • 配列内の各要素の labels 配列が複数のオブジェクトを持っている
  • オブジェクトの name が特定の value を持っている要素だけを select したい
  • 元の配列、オブジェクト構造を崩さずに復元したい

JSON input ( eg.json )

[
  {
    "labels": [
      {
        "name": "feature"
      }
    ]
  },
  {
    "labels": [
      {
        "name": "bug"
      },
      {
        "name": "important"
      }
    ]
  },
  {
    "labels": [
      {
        "name": "fix"
      },
      {
        "name": "important"
      }
    ]
  }
]

filter pattern 1

$ cat tmp/eg.json | jq '[.[] | select(.labels[] | .name == "fix")]'
[
  {
    "labels": [
      {
        "name": "fix"
      },
      {
        "name": "important"
      }
    ]
  }
]

filter pattern 2

$ cat tmp/eg.json | jq '[.[] | select(.labels[] | .name == "important")]'
[
  {
    "labels": [
      {
        "name": "bug"
      },
      {
        "name": "important"
      }
    ]
  },
  {
    "labels": [
      {
        "name": "fix"
      },
      {
        "name": "important"
      }
    ]
  }
]

Original by Github issue

https://github.com/YumaInaura/YumaInaura/issues/1197

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

Twitter

https://twitter.com/YumaInaura

公開日時

2019-04-12

Discussion