pixel fb

Как обрабатывать JSON в командной строке

Linux Как обрабатывать JSON в командной строке

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

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

Одна позволяет без особых усилий выполнять следующее действия при обработке json-данных:

  • разбирать;
  • преобразовывать;
  • фильтровать;
  • сравнивать.

Для установки её на Linix можно скачать и установить одну из версий бинариков — 32 или 64 битную. Подробней о том, как обрабатывать JSON в командной строке, а также заказать создание сайта можно у специалистов компании Nomax.

$ wget http://stedolan.github.io/jq/download/linux32/jq (32-bit)

$ wget http://stedolan.github.io/jq/download/linux64/jq (64-bit)

$ chmod +x ./jq

$ sudo cp jq /usr/bin

Также существуют сборки для Mac OS X и Windows. Тем, кого интересует полный исходный код, нужно обратиться к лицензии MIT.

Как это работает, можно подробно рассмотреть на примерах. Возьмем следующую json-схему.

 

$ cat json.txt

{

        "name": "Google",

        "location":

                {

                        "street": "1600 Amphitheatre Parkway",

                        "city": "Mountain View",

                        "state": "California",

                        "country": "US"

                },

        "employees":

                [

                        {

                                "name": "Michael",

                                "division": "Engineering"

                        },

                        {

                                "name": "Laura",

                                "division": "HR"

                        },

                        {

                                "name": "Elise",

                                "division": "Marketing"

                        }

                ]

}

Мы получаем следующее простое поле:

$ cat json.txt | jq '.name'

"Google"

Более сложный вариант со вложенностью:

$ cat json.txt | jq '.location.city'

"Mountain View"

Вариант для массивов:

$ cat json.txt | jq '.employees[0].name'

"Michael"

Для конкретного списка полей выборка будет выглядеть так:

$ cat json.txt | jq '.location | {street, city}'

{

  "city": "Mountain View",

  "street": "1600 Amphitheatre Parkway"

}

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

ПОХОЖИЕ СТАТЬИ