Введение
jq
— это инструмент командной строки, который позволяет вам манипулировать, фильтровать и форматировать данные JSON. Это особенно полезно при работе с API, которые возвращают данные в формате JSON. В этом руководстве мы узнаем, как установить и использовать jq
в Linux, MacOS и Windows.
Установка JQ
линукс
В Linux jq можно установить через диспетчер пакетов вашей системы. Например, в Ubuntu вы можете использовать:
sudo apt install jq
macOS
В MacOS jq можно установить через Homebrew. Если у вас еще нет Homebrew, вы можете установить его с помощью:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
После установки Homebrew вы можете установить jq с помощью brew install jq
.
окна
В Windows jq можно установить с помощью Chocolatey, менеджера пакетов для Windows. Если у вас еще нет Chocolatey, вы можете установить его, следуя инструкциям на официальном сайте Chocolatey. После установки Chocolatey вы можете установить jq с помощью:
choco install jq
Основное использование jq
После установки jq вы можете начать использовать его для управления данными JSON. jq принимает входные данные JSON и фильтр jq и создает выходные данные JSON.
Вот пример использования jq:
echo '{"nome": "Mario", "cognome": "Rossi", "eta": 30}' | jq '.'
Эта команда печатает JSON в удобочитаемом формате. Фильтр .
в jq обозначает весь ввод JSON.
Вот еще один пример:
echo '{"nome": "Mario", "cognome": "Rossi", "eta": 30}' | jq '.nome'
Эта команда печатает значение поля «имя» JSON.
Более сложные фильтры с jq
jq поддерживает гораздо более сложные фильтры. Вот некоторые примеры:
.[]
: этот фильтр выбирает все элементы массива..campo[]
: этот фильтр выбирает все элементы поля «поле», предполагая, что это массив.map(.campo)
: этот фильтр применяет фильтр.campo
ко всем элементам массива.select(.campo == "valore")
: этот фильтр выбирает все объекты, которые имеют "value" в качестве значения поля "field".
Вот пример использования этих фильтров:
echo '[{"nome": "Mario", "cognome": "Rossi", "eta": 30}, {"nome": "Luigi", "cognome": "Verdi", "eta": 35}]' | jq 'map(.nome)'
Эта команда печатает массив с именами всех людей во входном массиве.
Заключение
jq — очень мощный инструмент для управления данными JSON из командной строки. Он позволяет фильтровать, преобразовывать и форматировать данные JSON простым и интуитивно понятным способом. Мы надеемся, что это руководство помогло вам начать работу с jq. Хорошая работа!