Поиск по сайту

    Мои услуги на Kwork

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

Данный инструмент для работы с json в командной строке удобен при отладке REST API. Можно делать запрос, получать ответ и сразу же разбирать его, выделяя нужные объекты и поля.

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

Для установки на Linux можно просто скачать бинарники (есть 32 и 64 битные версии):

$ 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

Есть также сборки и для Windows и Mac OS X. Полный исходный код распространяется по лицензии MIT.

Рассмотрим примеры. Допустим, у нас есть следующая json-схема.

$ cat json.txt
{
        "name": "disnetern.ru",
        "location":
                {
                        "street": "Block 1",
                        "city": "Innopolis",
                        "country": "RU"
                },
        "employees":
                [
                        {
                                "name": "Eugene",
                                "division": "Network Engineer"
                        },
                        {
                                "name": "Aurora",
                                "division": "Programmer"
                        }
                ]
}

Получим простое поле:

$ cat json.txt | jq '.name'
"disnetern.ru"

Теперь чуть сложнее, со вложенностью:

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

Для массивов:

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

Выборка конкретного списка полей:

$ cat json.txt | jq '.location | {street, city}'
{
  "city": "Innopolis",
  "street": "Block 1"
}

Comments

So empty here ... leave a comment!

Добавить комментарий

Sidebar



Яндекс.Метрика Рейтинг@Mail.ru