Утилита для работы с 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!