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