Linux & API: Парсим JSON в терминале как боги с помощью jq
curl-нул API и получил в ответ стену текста в формате JSON? Пытаться разобрать это глазами или через grep — прошлый век. Для работы со структурированными данными в терминале есть свой sed и awk — это утилита jq.
jq — это легковесный и сверхмощный обработчик JSON для командной строки.
Установка: sudo apt install jq или brew install jq.
Практический пример с GitHub API:
Получаем и красиво форматируем JSON:
Bash
# Получаем значение ключа "name"
curl -s 'https://api.github.com/users/torvalds' | jq '.name'
# Результат: "Linus Torvalds"
curl -s 'https://api.github.com/users/torvalds' | jq '{user: .login, company: .company, location: .location}'
# Получаем список репозиториев и выводим только их имена
curl -s 'https://api.github.com/users/torvalds/repos' | jq '.[ ].name'
[ ] — итератор по массиву.
Взгляд архитектора:
jq — это клей для современной автоматизации. Он позволяет строить сложные и надёжные пайплайны в bash-скриптах, которые работают с API облачных провайдеров, системами мониторинга и любыми другими сервисами, говорящими на JSON. Это превращает нечитаемые данные в полезную информацию прямо в терминале.
#linux #jq #json #api #bash #devops #команды
curl-нул API и получил в ответ стену текста в формате JSON? Пытаться разобрать это глазами или через grep — прошлый век. Для работы со структурированными данными в терминале есть свой sed и awk — это утилита jq.
jq — это легковесный и сверхмощный обработчик JSON для командной строки.
Установка: sudo apt install jq или brew install jq.
Практический пример с GitHub API:
Получаем и красиво форматируем JSON:
Bash
# Просто передаём вывод curl в jq с фильтром '.' (точка)
curl -s 'https://api.github.com/users/torvalds' | jq '.'
``
Извлекаем одно значение:
Bash
# Получаем значение ключа "name"
curl -s 'https://api.github.com/users/torvalds' | jq '.name'
# Результат: "Linus Torvalds"
Извлекаем несколько значений и создаем свой объект:
Bash
curl -s 'https://api.github.com/users/torvalds' | jq '{user: .login, company: .company, location: .location}'
Работаем с массивами (самое мощное):
Bash
# Получаем список репозиториев и выводим только их имена
curl -s 'https://api.github.com/users/torvalds/repos' | jq '.[ ].name'
`[ ] — итератор по массиву.
Взгляд архитектора:
jq — это клей для современной автоматизации. Он позволяет строить сложные и надёжные пайплайны в bash-скриптах, которые работают с API облачных провайдеров, системами мониторинга и любыми другими сервисами, говорящими на JSON. Это превращает нечитаемые данные в полезную информацию прямо в терминале.
#linux #jq #json #api #bash #devops #команды
👍2
📄 Linux: gron — делаем JSON читаемым
Все знают утилиту jq. Она мощная, но синтаксис запросов там — это отдельный язык программирования, который вечно забываешь. Когда нужно просто "грепнуть" JSON, используйте gron.
Он превращает иерархический JSON в плоский список (greppable output).
Было (JSON):
Стало (gron):
Кейс: Найти ID пользователя "guest".
Установка: sudo apt install gron или скачать бинарник с GitHub.
#linux #tools #json #cli #productivity #gron
Все знают утилиту jq. Она мощная, но синтаксис запросов там — это отдельный язык программирования, который вечно забываешь. Когда нужно просто "грепнуть" JSON, используйте gron.
Он превращает иерархический JSON в плоский список (greppable output).
Было (JSON):
{
"users": [
{ "name": "admin", "id": 1 },
{ "name": "guest", "id": 2 }
]
}
Стало (gron):
json.users[0].name = "admin";
json.users[0].id = 1;
json.users[1].name = "guest";
json.users[1].id = 2;
Кейс: Найти ID пользователя "guest".
gron users.json | grep "guest"
# Вывод: json.users[1].name = "guest";
# Ага, это индекс [1]!
Установка: sudo apt install gron или скачать бинарник с GitHub.
#linux #tools #json #cli #productivity #gron
🧠 Skill: JSON — универсальный клей админа
Раньше мы грепали текст (grep | awk).
В 2026 году, когда вокруг Docker, Kubernetes и REST API, вывод почти всегда можно получить в JSON.
Парсить JSON как текст — это путь к ошибкам.
Учимся работать с объектами, а не строками:
🐧 Linux (jq): Не делайте grep "status", делайте:
(Выведет имена только упавших сервисов).
🪟 PowerShell: Здесь JSON становится родным объектом .NET автоматически:
Совет: Если консольная утилита имеет флаг --json (как kubectl, aws cli, docker), всегда используйте его для скриптов. Это делает вашу автоматизацию неубиваемой при смене форматирования вывода разработчиками.
#skills #json #jq #powershell #bash #devops #api
Раньше мы грепали текст (grep | awk).
В 2026 году, когда вокруг Docker, Kubernetes и REST API, вывод почти всегда можно получить в JSON.
Парсить JSON как текст — это путь к ошибкам.
Учимся работать с объектами, а не строками:
🐧 Linux (jq): Не делайте grep "status", делайте:
curl -s https://api.site.com/health | jq '.services[] | select(.status=="down") | .name'
(Выведет имена только упавших сервисов).
🪟 PowerShell: Здесь JSON становится родным объектом .NET автоматически:
$data = curl https://api.site.com/health | ConvertFrom-Json $data.services | Where-Object { $_.status -eq 'down' } | Select-Object name
Совет: Если консольная утилита имеет флаг --json (как kubectl, aws cli, docker), всегда используйте его для скриптов. Это делает вашу автоматизацию неубиваемой при смене форматирования вывода разработчиками.
#skills #json #jq #powershell #bash #devops #api
👍2🔥2👏1