JSON (от англ. JavaScript Object Notation) — текстовый формат обмена данными. Его особенностью является то, что люди могут его читать и писать на нем. JSON полностью независим от языка программирования, и может использоваться со многими из них, включая C, C++, C#, Java, JavaScript, Perl, Python и так далее. Функционал операционной системы Linux позволяет пользователям обрабатывать данные из JSON-файлов прямо в командной строке. Для этого можно использовать встроенную утилиту jq.
В этой статье мы расскажем, как применять команду jq для управления данными JSON в Linux.
Содержание:
- Пример содержимого файла JSON
- Вывод данных из файла JSON
- Получение определенного объекта из JSON-файла
- Вывод только определенных значений из всех объектов JSON
- Фильтрация данных JSON
- Преобразование данных JSON
- Объединение двух массивов JSON
- Сортировка и группировка данных JSON
- Выводы
Пример содержимого файла JSON
Для этого создадим файл input.json в формате JSON и запишем в него следующие данные:
Читайте также: 12 альтернатив редактора Notepad++ для Linux.
Вывод данных из файла JSON
С помощью утилиты jq можно вывести на экран все данные из файла в формате JSON. Для этого следует использовать команду:
Вы также можете перечислить только объекты из массива JSON. Чтобы это сделать, добавьте в предыдущую команду после точки квадратные скобки:
Получение определенного объекта из JSON-файла
У каждого объекта в файле формата JSON есть свой индекс. Первый объект имеет индекс 0, второй — 1, третий — 2 и так далее. Чтобы отобразить в терминале объект с индексом 0, выполните команду:
Функционал JSON позволяет использовать вложенную структуру данных, где элементами массива могут быть другие массивы. С помощью утилиты jq можно также получать доступ к вложенным элементам. Для этого применяется следующая команда:
Читайте также: 17 примеров использования top в Linux.
Допустим, нам нужно извлечь из первого объекта (с индексом 0) значение ключа name. Выполним в терминале:
Также извлечем из файла input.json значение city из первого объекта. Для этого нам сперва нужно добраться до ключа address, и только потом к city:
Вывод только определенных значений из всех объектов JSON
Вы можете вывести в терминал только значения нужных Вам ключей из всех объектов в JSON-файле. Для примера отобразим в окне командной строки только значения, которые имеют ключ name и city:
Фильтрация данных JSON
Вы можете фильтровать данные JSON по значениям ключей. Для этого используется команда:
Для примера выведем в терминале только объекты, значения ключей — age — которых больше 30:
Читайте также: 5 команд для поиска файлов в Linux.
Преобразование данных JSON
Утилита jq позволяет пользователям создавать новые массивы JSON на основе данных из других массивов. К примеру, возьмем из файла input.json ключи name и age с их значениями и выведем их на экран:
Объединение двух массивов JSON
Допустим, у нас есть два массива input.json и input1.json. Мы можем с помощью команды jq объединить их. Для этого выполним в терминале:
Сортировка и группировка данных JSON
Утилита jq имеет встроенную функцию sort_by, которая позволяет сортировать объекты массива по значениям ключей. К примеру, отсортируем input.json по значениям age:
Или:
Читайте также: Как установить среду разработки Arduino IDE в Linux.
Встроенная функция group_by позволяет группировать объекты массива по одинаковым значениям ключей. Результатом группировки является массив, в котором каждый элемент представляет собой группу объектов с одинаковым значением ключа. Например:
Выводы
Мы показали Вам, как применять команду jq в Linux. Используя показанные примеры, Вы сможете фильтровать, сортировать, группировать и выполнять другие операции с данными JSON.
Спасибо за время, уделенное прочтению статьи!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.


































