Linux

Як обробляти JSON у командному рядку

Під час налагодження REST API для роботи з json у командному рядку потрібно знайти зручний інструмент

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

Відповідаючи на запитання, як обробляти JSON у командному рядку, розглянемо утиліту з назвою jq, яка ідеально підходить для наших цілей.

Вона дозволяє без особливих зусиль виконувати такі дії під час обробки json-даних:

  • розбирати;
  • перетворювати;
  • фільтрувати;
  • порівнювати.

Для встановлення її на Linux можна завантажити та встановити одну з версій бінарників — 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 у командному рядку насправді нескладно. Якщо вам потрібна допомога, звертайтеся до наших програмістів.

← Back to articles