jq
Консольный JSON обработчик, который использует предметно-ориентированный язык запросов.
- Вывести JSON файл, в удобочитаемом формате:
jq . {{file.json}}
- Вывести все элементы массива (или все значения из объекта) из JSON файла:
jq '.[]' {{file.json}}
- Прочитать JSON объекты из файла в массив и вывести их (инверсия
jq .[]
):
jq --slurp . {{file.json}}
- Вывести первый элемент JSON файла:
jq '.[0]' {{file.json}}
- Вывести значение указанного ключа для каждого элемента в JSON тексте. JSON текст получаем из стандартного потока ввода (stdin):
cat {{file.json}} | jq 'map(.{{key_name}})'
- Вывести значения нескольких ключей как новый JSON объект (исходя из того, что входящий JSON имеет ключи
key_name
иother_key_name
):
cat {{file.json}} | jq '{{{my_new_key}}: .{{key_name}}, {{my_other_key}}: .{{other_key_name}}}'
- Совмещаем несколько фильтров:
cat {{file.json}} | jq 'unique | sort | reverse'
- Вывести значение заданного ключа в строку (и отключить JSON вывод):
cat {{file.json}} | jq --raw-output '"some text: \(.{{key_name}})"'