Как установить jq ubuntu

Обновлено: 07.07.2024

В этом руководстве мы расскажем, как установить Java на Ubuntu 20.04.

Подготовка

Репозитории Ubuntu 20.04 по умолчанию включают два пакета OpenJDK, Java Runtime Environment (JRE) и Java Development Kit (JDK). JRE состоит из виртуальной машины Java (JVM), классов и двоичных файлов, которые позволяют запускать программы Java. JDK включает JRE, инструменты и библиотеки для разработки / отладки, необходимые для создания приложений Java.

Установка OpenJDK 11

Выполните следующие команды как пользователь с привилегиями sudo или root, чтобы обновить индекс пакетов и установить пакет OpenJDK 11 JDK:

После завершения установки вы можете проверить это, проверив версию Java:

Результат должен выглядеть примерно так:

Это оно! На этом этапе вы успешно установили Java в свою систему Ubuntu.

JRE входит в пакет JDK. Если вам нужна только JRE, установите openjdk-11-jre . Для минимальной среды выполнения Java установите openjdk-11-jdk-headless .

Установка OpenJDK 8

Java 8, предыдущая версия Java LTS, все еще широко используется. Если ваше приложение работает на Java 8, вы можете установить его, введя следующие команды:

Проверьте установку, проверив версию Java:

Результат должен выглядеть примерно так:

Установка версии по умолчанию

Если в вашей системе Ubuntu установлено несколько версий Java, вы можете проверить, какая версия установлена по умолчанию, набрав:

Чтобы изменить версию по умолчанию, используйте команду update-alternatives :

Результат будет выглядеть примерно так:

Вам будет представлен список всех установленных версий Java. Введите номер версии, которую вы хотите использовать по умолчанию, и нажмите Enter .

Переменная среды JAVA_HOME

Переменная среды JAVA_HOME используется некоторыми приложениями Java для определения места установки Java.

Чтобы установить переменную JAVA_HOME , сначала найдите путь установки Java с update-alternatives :

В этом примере пути установки следующие:

Найдя путь к предпочтительной установке Java, откройте файл /etc/environment :

Предполагая, что вы хотите установить JAVA_HOME чтобы он указывал на OpenJDK 11, добавьте следующую строку в конец файла:

Чтобы изменения вступили в силу в вашей текущей оболочке, вы можете либо выйти из системы и войти в систему, либо выполнить следующую source команду:

Убедитесь, что переменная среды JAVA_HOME была правильно установлена:

Вы должны увидеть путь к установке Java:

Удаление Java

Вы можете удалить Java, как любой другой пакет, установленный с помощью apt .

Например, чтобы удалить пакет default-jdk , введите:

Выводы

OpenJDK 11 и OpenJDK 8 доступны в репозиториях Ubuntu 20.04 по умолчанию и могут быть установлены с помощью диспетчера пакетов apt .

Подсказка терминала на ПК с Linux.

Fatmawati Achmad Zaenuri/Shutterstock

JSON и jq

JSON расшифровывается как JavaScript Object Notation. Это схема, которая позволяет кодировать данные в простые текстовые файлы с самоописанием. В файле JSON нет комментариев - его содержимое не требует пояснений. Каждое значение данных имеет текстовую строку, называемую «именем» или «ключом». Это говорит вам, каково значение данных. Вместе они известны как пары имя: значение или пары ключ: значение. Двоеточие ( : ) отделяет ключ от его значения.

«Объект» - это набор пар ключ: значение. В файле JSON объект начинается с открытой фигурной скобки ( < ) и заканчивается закрывающей скобкой ( >). JSON также поддерживает «массивы», которые представляют собой упорядоченные списки значений. Массив начинается с открывающей скобки ( [ ) и заканчивается закрывающей скобкой ( ] ).

Конечно, из этих простых определений может возникнуть произвольная сложность. Например, объекты могут быть вложены в объекты. Объекты могут содержать массивы, а массивы также могут содержать объекты. Все они могут иметь открытые уровни вложенности.

В большинстве языков программирования есть библиотеки или модули, позволяющие анализировать данные JSON. К сожалению, оболочка Bash не имеет такой функциональности.

Однако, будучи матерью изобретения, родилась утилита jq ! С помощью jq мы можем легко анализировать JSON в оболочке Bash. И неважно, приходится ли вам работать с хорошо продуманным, элегантным JSON или с тем, из чего состоят кошмары.

Как установить jq

Нам пришлось установить jq во все дистрибутивы Linux, которые мы использовали для исследования этой статьи.

Чтобы установить jq в Ubuntu, введите следующую команду:


Чтобы установить jq в Fedora, введите эту команду:


Чтобы установить jq на Manjaro, введите эту команду:


Как сделать JSON читабельным

JSON не заботится о пустом пространстве, и макет на него не влияет. Пока он следует правилам грамматики JSON, системы, обрабатывающие JSON, могут его прочитать и понять. Из-за этого JSON часто передается как простая длинная строка без учета макета. Это экономит немного места, поскольку табуляции, пробелы и символы новой строки не нужно включать в JSON. Конечно, обратная сторона всего этого - когда человек пытается это прочитать.

Давайте возьмем короткий объект JSON с сайта НАСА, который сообщает нам положение Международной космической станции. Мы будем использовать curl , который может загружать файлы, чтобы получить для нас объект JSON.


Теперь, приложив немного усилий, вы можете прочитать это. Вы должны выбрать значения данных, но это непросто и непросто. Давайте повторим это, но на этот раз мы пропустим его через jq .

jq использует фильтры для анализа JSON, и самый простой из этих фильтров - точка ( . ), что означает «распечатать весь объект». По умолчанию jq красиво печатает вывод.

Собираем все вместе и набираем следующее:


Это намного лучше! Теперь мы можем точно видеть, что происходит.

Мы попробуем еще раз. На этот раз мы введем следующее и перенаправим вывод в файл с именем «iss.json»:


Это дает нам хорошо продуманную копию объекта JSON на нашем жестком диске.

Доступ к значениям данных

Как мы видели выше, jq может извлекать значения данных, передаваемые по конвейеру из JSON. Он также может работать с JSON, хранящимся в файле. Мы собираемся работать с локальными файлами, чтобы командная строка не была загромождена командами curl . Это должно упростить отслеживание.

Самый простой способ извлечь данные из файла JSON - указать имя ключа для получения его значения данных. Введите точку и название ключа без пробела. Это создает фильтр по имени ключа. Нам также нужно указать jq , какой файл JSON использовать.

Мы вводим следующее, чтобы получить значение message :


jq печатает текст значения message в окне терминала.

Если у вас есть ключевое имя, содержащее пробелы или знаки препинания, вам необходимо заключить его фильтр в кавычки. Обычно используются только символы, числа и символы подчеркивания, чтобы имена ключей JSON не создавали проблем.

Сначала мы вводим следующее, чтобы получить значение timestamp :


Значение отметки времени извлекается и печатается в окне терминала.

Но как мы можем получить доступ к значениям внутри объекта iss_position ? Мы можем использовать точечную нотацию JSON. Мы включим имя объекта iss_position в «путь» к значению ключа. Для этого имя объекта, внутри которого находится ключ, будет предшествовать имени самого ключа.

Мы вводим следующее, включая имя ключа latitude (обратите внимание, что между «.iss_position» и «.latitude» нет пробелов):


Чтобы извлечь несколько значений, вам необходимо сделать следующее:

  • Перечислите имена ключей в командной строке.
  • Разделите их запятыми ( , ).
  • Заключите их в кавычки ( " ) или апострофы ( ' ).

Имея это в виду, мы вводим следующее:


Два значения печатаются в окне терминала.

Работа с массивами

Давайте возьмем другой объект JSON из НАСА.

На этот раз мы воспользуемся списком космонавтов, которые сейчас находятся в космосе:


Хорошо, это сработало, давайте сделаем это еще раз.


Теперь давайте введем следующее, чтобы проверить ваш файл:


Как показано ниже, теперь мы видим список космонавтов в космосе, а также их космические корабли.


Этот объект JSON содержит массив с именем people . Мы знаем, что это массив, благодаря открывающей скобке ( [ ) (выделенной на скриншоте выше). Это массив объектов, каждый из которых содержит две пары ключ: значение: name и craft .

Как и раньше, мы можем использовать точечную нотацию JSON для доступа к значениям. Мы также должны включить скобки ( [] ) в имя массива.

Имея это в виду, мы набираем следующее:


На этот раз все значения имени выводятся в окно терминала. Мы попросили jq напечатать значение имени для каждого объекта в массиве. Довольно аккуратно, да?

Мы можем получить имя отдельного объекта, если поместим его позицию в массиве в скобки ( [] ) в командной строке. В массиве используется индексация с нулевым смещением, что означает, что объект в первой позиции массива равен нулю.

Для доступа к последнему объекту в массиве вы можете использовать -1; чтобы получить предпоследний объект в массиве, вы можете использовать -2 и так далее.

Иногда объект JSON предоставляет количество элементов в массиве, как в этом случае. Наряду с массивом он содержит пару ключ: имя с именем число со значением шесть.

В этом массиве находится следующее количество объектов:


Вы также можете указать начальный и конечный объекты в массиве. Это называется «нарезкой», и это может немного сбивать с толку. Помните, что в массиве используется нулевое смещение.

Чтобы извлечь объекты из позиции индекса два, до (но не включая) объекта в позиции индекса четыре, мы вводим следующую команду:


Это печатает объекты в массиве с индексом два (третий объект в массиве) и три (четвертый объект в массиве). Он останавливает обработку в массиве с индексом четыре, который является пятым объектом в массиве.

Чтобы лучше понять это, поэкспериментируйте в командной строке. Вы скоро увидите, как это работает.

Как использовать трубы с фильтрами

Мы скажем jq передать массив people в фильтр .name , который должен перечислить имена астронавтов в окне терминала.


Создание массивов и изменение результатов

Мы можем использовать jq для создания новых объектов, таких как массивы. В этом примере мы извлечем три значения и создадим новый массив, содержащий эти значения. Обратите внимание, что открывающая ( [ ) и закрывающая скобки ( ] ) также являются первым и последним символами в строке фильтра.


Вывод заключен в квадратные скобки и разделен запятыми, что делает его правильно сформированным массивом.

Числовыми значениями также можно управлять по мере их извлечения. Давайте извлечем метку времени из файла положения ISS, а затем извлечем ее снова и изменим возвращаемое значение.

Для этого набираем следующее:


Это полезно, если вам нужно добавить или удалить стандартное смещение из массива значений.

Чтобы напомнить себе, что содержится в файле iss.json , напечатайте следующее:


Допустим, мы хотим избавиться от пары ключ: значение message . Это не имеет ничего общего с положением Международной космической станции. Это просто флаг, указывающий на то, что местоположение было получено успешно. Если он превышает потребности, мы можем обойтись без него. (Вы также можете просто проигнорировать это.)


Обратите внимание, что на самом деле это не удаляет его из файла «iss.json»; он просто удаляет его из вывода команды. Если вам нужно создать новый файл без пары ключ: значение message , запустите команду, а затем перенаправьте вывод в новый файл.

Более сложные объекты JSON

Давайте найдем еще данные НАСА. На этот раз мы будем использовать объект JSON, содержащий информацию о местах падения метеоров со всего мира. Это более крупный файл с гораздо более сложной структурой JSON, чем те, с которыми мы имели дело ранее.


Чтобы увидеть, как выглядит JSON, мы набираем следующее:


Как показано ниже, файл начинается с открывающей скобки ( [ ), поэтому весь объект представляет собой массив. Объекты в массиве представляют собой коллекции пар ключ: значение, и есть вложенный объект с именем geolocation . Объект geolocation содержит дополнительные пары ключ: значение и массив с именем координаты .


Давайте извлечем названия ударов метеорита от объекта с позиции индекса 995 до конца массива.

Мы введем следующее, чтобы пропустить JSON через три фильтра:


Фильтры работают следующим образом:

  • .[995:] : This tells jq to process the objects from array index 995 through the end of the array. No number after the colon ( : ) is what tells jq to continue to the end of the array.
  • : этот итератор массива сообщает jq о необходимости обработки каждого объекта в массиве.
  • .name : этот фильтр извлекает значение имени.

С небольшим изменением мы можем извлечь из массива последние 10 объектов. «-10» указывает jq начать обработку объектов 10 с конца массива.


Как и в предыдущих примерах, мы можем ввести следующее, чтобы выбрать один объект:


Мы также можем применить нарезку к строкам. Для этого мы введем следующее, чтобы запросить первые четыре символа имени объекта в массиве с индексом 234:


Мы также можем видеть конкретный объект целиком. Для этого мы вводим следующее и включаем индекс массива без каких-либо фильтров key: value:


Если вы хотите видеть только значения, вы можете сделать то же самое без имен ключей.

В нашем примере мы набираем эту команду:


Чтобы получить несколько значений из каждого объекта, мы разделяем их запятыми в следующей команде:


Если вы хотите получить вложенные значения, вы должны идентифицировать объекты, которые образуют «путь» к ним.

Например, чтобы ссылаться на значения координаты , мы должны включить всеобъемлющий массив, вложенный объект geolocation и вложенный массив координаты . , как показано ниже.


Чтобы увидеть значения координат для объекта в позиции 121 индекса массива, мы вводим следующую команду:


Функция длины

Функция jq length дает разные показатели в зависимости от того, что было применено, например:

  • Струны: длина строки в байтах.
  • Объекты: количество пар ключ: значение в объекте.
  • Массивы: количество элементов массива в массиве.

Следующая команда возвращает длину значения name в 10 объектах в массиве JSON, начиная с позиции индекса 100:


Чтобы узнать, сколько пар ключ: значение находится в первом объекте массива, мы набираем эту команду:


Клавиши Функция

Вы можете использовать функцию ключей, чтобы узнать о JSON, с которым вам нужно работать. Он может сказать вам, как называются ключи и сколько объектов находится в массиве.

Чтобы найти ключи в объекте people в файле «astro.json», мы вводим эту команду:


Чтобы узнать, сколько элементов находится в массиве people , мы набираем эту команду:


Это показывает, что имеется шесть элементов массива с нулевым смещением, пронумерованных от нуля до пяти.

Функция has ()

Вы можете использовать функцию has () , чтобы запросить JSON и узнать, имеет ли объект определенное имя ключа. Обратите внимание, что имя ключа должно быть заключено в кавычки. Мы заключим команду фильтра в одинарные кавычки ( ' ) следующим образом:

В

Каждый объект в массиве проверяется, как показано ниже.

Выход из

Если вы хотите проверить конкретный объект, вы включаете его позицию индекса в фильтр массива следующим образом:

В

Не приближайтесь к JSON без него

Утилита jq - прекрасный пример профессионального, мощного и быстрого программного обеспечения, которое делает жизнь в мире Linux таким удовольствием.

Это было всего лишь краткое введение в общие функции этой команды - это еще не все. Обязательно ознакомьтесь с полным руководством по jq, если хотите копнуть глубже.

Инженеры фоновой разработки часто разрабатывают под Linux. Когда мы получаем данные в формате json, как эффективно проанализировать эти данные? Мы можем использовать python в сочетании с библиотекой json для анализа, но у linux есть очень полезный инструмент, который позволяет нам легко обрабатывать текст json с очень мощными функциями.

скачать

использование

подготовка данных

jq может выводить текст json в читаемую форму. Я подготовил тестовые данные json следующим образом:

Я использую библиотеку json в Python для обработки ее в виде строки следующим образом:

Этот формат является форматом, который мы часто видим в реальной работе. Например, мы используем curl для запроса интерфейса и возвращаем json. Например, мы проверяем вывод данных json в нашем проекте. Этот формат часто менее читабелен. Нам нужно обработать его, прежде чем мы сможем его увидеть.

использование

Чтобы преобразовать в удобную для чтения форму перед обработкой Python, выполните:


Вывод

jq преобразует данные в простой для чтения формат, а также добавляет инструкции по выделению цветов, где ключ и значение используют разные цвета.

Если данные json большие, мы хотим видеть только одно из данных поля, а затем использовать следующий синтаксис:


тестовое задание

Когда поле является списком, jq может разрезать его


тестовое задание

Нарезка поддерживает несколько форматов на рисунке, обратите внимание на отличие от нарезки списка Python.

Различая два типа '.skills' и '.skills []', вы можете видеть, что выходные данные первого - это список, а последний - член списка в формате, отличном от json.

Подробное использование

Предыдущий раздел был jq Общее использование, здесь объясняет конкретный принцип JQ.

jq получает ввод текста из конвейера или файла linux. Если текст не соответствует формату json, jq сообщит об ошибке. Вы можете использовать этот метод, чтобы проверить, соответствует ли текст проверке json:

jq использует фильтр для обработки текста в формате json и выводит отфильтрованное содержимое на стандартный вывод. filter используется для фильтрации полей, отвечающих потребностям, таких как простейший фильтр '.' , Это означает отсутствие стратегии фильтрации, поэтому будет выводиться весь текст json.

key filter

Отфильтруйте имена полей, которые соответствуют ключу, и выведите значение ключа.

key-value filter


Выведите ключ и значение, отличите фильтр ключа следующим образом

Поскольку значение ключа должно принадлежать объекту, добавьте внешний слой <>.

index filter

Индекс массива и слайс, используемые для управления элементами списка.

Вложенный фильтр уровня

Используется для вложенного фильтра данных JSON.

Несколько фильтров

Используйте английскую однобайтовую запятую для разделения фильтра, который используется для фильтрации нескольких полей в фильтре.

фильтр трубопровода

После большинства фильтров выходные данные все еще являются данными json, поэтому вы можете подключить фильтр через конвейер.

Вывод данных после реорганизации фильтра
Иногда нам нужно реконструировать структуру json, например, удалить определенный уровень вложенности, например взять несколько полей для формирования нового json, в это время нам нужно изменить структуру json, Мы можем использовать [] с <> Реорганизовать JSON.


тестовое задание


тестовое задание

Рекурсивно расширить структуру JSON
Иногда нам нужно найти поле в json, но мы не знаем, в каком вложении находится это поле. Если вложение глубокое, его трудно найти. jq может поместить вложение Найти после разворачивания и выравнивания.


тестовое задание

После расширения объедините конвейер и снова отфильтруйте, чтобы найти ключ.

length filter
Вычисляет длину элемента. Для объектов длина представляет количество элементов в объекте, для строки длина представляет количество строковых символов, а для списков - количество элементов списка.


тестовое задание


keys filter
вывод всех ключей, форма списка
тестовое задание

Проверьте, существует ли ключ
Если вход является объектом, то элементы объекта существуют в форме «ключ-значение», используйте

Проверьте, содержит ли объект json ключ.

Обход списка
jq поддерживает использование map () или map_values ​​() для обхода списка или значения объекта.


тестовое задание

Удалить ключ

Используйте del () для удаления значения ключа, описанного фильтром.

понять больше

В предыдущем разделе объяснялись только наиболее часто используемые функции jq. На самом деле, jq имеет более практичные фильтры. Если вышеупомянутые функции не отвечают вашим потребностям, вы можетеJQ адрес проектаНайти подробные инструкции по.

Как установить Node.js и npm в Ubuntu 18.04

Node.js - это кроссплатформенная среда выполнения JavaScript с открытым исходным кодом, которая позволяет выполнять код JavaScript на стороне сервера. Это означает, что вы можете запускать код JavaScript на своем компьютере как отдельное приложение без какого-либо веб-браузера. Node.js в основном используется для создания серверных приложений, но он также очень популярен как полнофункциональное и интерфейсное решение.

Npm - это менеджер пакетов по умолчанию для Node.js и крупнейшего в мире реестра программного обеспечения.

Если вам нужен Node.js только как локальная среда выполнения для развертывания приложений Node.js, то самый простой вариант - установить Node.js из репозитория NodeSource. Разработчикам следует предпочесть установку Node.js с помощью сценария NVM.

Выберите вариант установки, подходящий для вашей среды. Чтобы узнать, какие версии Node.js поддерживаются, лучше всего проконсультироваться с документацией к приложению Node.js, которое вы используете.

Установка Node.js и npm из NodeSource

NodeSource - это компания, ориентированная на предоставление поддержки Node корпоративного уровня, и они поддерживают репозиторий, содержащий последние версии Node.js.

Используйте этот репозиторий, если вам нужно установить определенную версию Node.js. На момент написания репозиторий NodeSource предоставляет следующие версии - v14.x, v13.x, v12.x и v10.x. Мы установим текущую LTS-версию Node.js, версию 12.

Чтобы установить Node.js и npm из репозитория NodeSource, выполните следующие действия:

Включите репозиторий NodeSource, выполнив следующую curl команду от имени пользователя с привилегиями sudo :


Команда добавит ключ подписи NodeSource в вашу систему, создаст файл репозитория источников apt, установит все необходимые пакеты и обновит кеш apt.

Если вам нужно установить другую версию, например 14.x, просто измените ее setup_12.x с помощью setup_14.x

После включения репозитория NodeSource установите Node.js и npm, набрав:

Nodejs пакет содержит как node и npm двоичные файлы.

Убедитесь, что Node.js и npm были успешно установлены, распечатав их версии:

Установка Node.js и npm с помощью NVM

NVM (Node Version Manager) - это сценарий bash, используемый для управления несколькими активными версиями Node.js. С помощью NVM вы можете установить и удалить любую конкретную версию Node.js, которую хотите использовать или протестировать.

Чтобы установить Node.js и npm с помощью NVM в вашей системе Ubuntu, выполните следующие действия:

1. Установка скрипта NVM (Node Version Manager)

Чтобы скачать и установить nvm скрипт, выполните:


Приведенная выше команда клонирует репозиторий NVM из Github в

Как видно из выходных данных, вы должны либо закрыть и снова открыть терминал, либо запустить команды, чтобы добавить путь к nvm сценарию в текущий сеанс оболочки. Вы можете делать все, что вам легче.

Как только сценарий будет у вас PATH , убедитесь, что он nvm был правильно установлен, набрав:

2. Установка Node.js и npm

Теперь, когда nvm установлен, вы можете установить последнюю доступную версию Node.js, набрав:


Результат должен выглядеть примерно так:


После завершения установки проверьте ее, распечатав версию Node.js:

Установим еще две версии, последнюю версию LTS и версию 8.10.0.


Чтобы вывести список установленных версий Node.js, введите:


Результат должен выглядеть примерно так:

Запись со стрелкой справа (-> v8.10.0) - это версия Node.js, используемая в текущем сеансе оболочки, а версия по умолчанию установлена ​​на v12.8.1. Версия по умолчанию - это версия, которая будет активна при открытии новых оболочек.

Вы можете изменить текущую активную версию с помощью:


Если вы хотите изменить версию Node.js по умолчанию, используйте следующую команду:

Установите Node.js и npm из репозитория Ubuntu

Пакеты Node.js и npm доступны из репозиториев Ubuntu 18.04 по умолчанию.

На момент написания версия, включенная в репозитории Ubuntu, v8.10.0 является предыдущей версией TLS.

Для установки nodejs и npm запуска следующих команд:


Исполняемый файл Node.js из репозиториев Ubuntu назван, nodejs а не node из-за конфликта с другим пакетом.

Проверьте установку, выполнив:

Установить инструменты разработки

Чтобы иметь возможность компилировать и устанавливать собственные надстройки из npm, вам необходимо установить инструменты разработки.

Следующая команда установит все необходимые пакеты, включая компиляторы GCC :


Слово JSON означает JavaScript Object Notation, хотя оно начинается с JavaScript и в основном используется для обмена данными между сервером и браузером, но в настоящее время используется во многих областях, включая встроенные системы.

Здесь мы собираемся проанализировать и вывести JSON с помощью инструментов командной строки в Linux.

Это чрезвычайно полезно для обработки больших данных JSON в скриптах оболочки или для управления данными JSON в скриптах оболочки.

Что такое красивый вывод json?

Данные JSON структурированы так, чтобы быть более удобочитаемыми для человека.

Однако в большинстве случаев данные JSON хранятся в одной строке, даже без символа окончания строки.

Очевидно, что это не очень удобно для чтения и редактирования вручную.

Вот тогда красивый вывод полезен.

Название самоочевидно, переформатировать текст JSON, чтобы он было более читабельным для людей.

Данные JSON можно анализировать с помощью текстовых процессоров командной строки, таких как awk, sed и gerp.

Однако для этой цели есть несколько специализированных инструментов.

  • jq или jshon, JSON-парсер для оболочки, оба они весьма полезны.
  • Скрипты оболочки, такие как JSON.sh или jsonv.sh, для анализа JSON в оболочке bash, zsh или dash.
  • JSON.awk, JSON-анализатор, awk-скрипт.
  • Модули Python, такие как json.tool.
  • underscore-cli, Node.js и на основе JavaScript.

В этом уроке я сосредоточусь только на jq, довольно мощном парсере JSON для оболочек с расширенными возможностями фильтрации и скриптов.

JSON понятный вывод

Данные JSON могут быть едины и почти неразборчивы для людей, поэтому, чтобы сделать их несколько читабельными, есть удобный вывод JSON.

Фактические данные выглядят так:

Теперь выведем его с помощью JQ:

Вывод должен выглядеть как показано ниже после фильтрации результата с помощью jq.

То же самое можно сделать с модулем Python json.tool. Вот пример:

Это решение на основе Python должно подойти большинству пользователей, но оно не очень полезно, если Python не установлен или не может быть установлен, как во встроенных системах.

Таким образом, вы можете использовать его без проблем в Windows, Linux или Mac OS.

Как парсить JSON с jq

Во-первых, вам нужно установить jq, он уже подхвачен большинством дистрибутивов GNU / Linux, и вы можете установить его с помощью соответствующих команд установщика пакетов.

На Debian, Ubuntu, Linux Mint:

Для других ОС или платформ смотрите официальные инструкции по установке.

Основные фильтры и идентификаторы jq

jq может читать данные JSON либо из стандартного ввода, либо из файла.

Вы должны использовать оба в зависимости от ситуации.

Единый символ это самый простой фильтр.

Эти фильтры также называются object identifier-index.

Чтобы отфильтровать определенную часть JSON, вы должны изучить иерархию данных файла JSON.

Пример данных JSON из Википедии:

Я собираюсь использовать эти данные JSON в качестве примера в этом учебном пособии, сохранив их как sample.json.

Допустим, я хочу отфильтровать адрес из файла sample.json. Таким образом, команда должна быть такой:

Снова допустим, что я хочу почтовый индекс, затем я добавлю еще один object identifier-index, то есть еще один фильтр.

Читайте также: