jq:他のフィールドの制約を使用してjsonファイルを解析します。

jq:他のフィールドの制約を使用してjsonファイルを解析します。

この質問を展開すると、次のようになります。文字列の一部だけを保持しながらJSON値の文字列を結合する方法は? 上記のリンク出力には"name"次のfolder種類も含まれているため、除外する必要があります"type"

           "date_added": "13170994909893393",
           "date_modified": "13184204204228233",
           "id": "2098",
           "name": "ElasticSearch",
           "sync_transaction_version": "1",
           "type": "folder"

無視した場合、"type"同じオブジェクトのフィールドのみを取得する方法:"url"

出力に含める有効なパターン:

           "type": "url",
           "url": "https://url_here"

答え1

オブジェクトの配列が与えられたら、を使用してjq特定の基準を満たすオブジェクトを選択できますselect()

試してみるといいと思います。

.array[] | select(.type == "url")

たとえば、JSON文書が与えられた場合

{ "array": [ { "type": "folder", "name": "example folder" },
             { "type": "url",    "name": "example url"    } ] }

上記のクエリは返されます

{
  "type": "url",
  "name": "example url"
}

関連情報