Как использовать jq для управления JSON из командной строки в Linux, MacOS и Windows

18 mag 2023 1 min di lettura
Как использовать jq для управления JSON из командной строки в Linux, MacOS и Windows
Indice dei contenuti

Введение

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. Хорошая работа!

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.