Tproger

Новости

События

Вакансии

Тесты

Задачки

Отвечают эксперты

Реклама

Свежие статьи

Лучшие за неделю

Лучшие за месяц

Лучшие за всё время

Новости

События

Вакансии

Тесты

Задачки

Отвечают эксперты

Реклама

Свежие статьи

Лучшие за неделю

Лучшие за месяц

Лучшие за всё время

Начинающим

Алгоритмы

Планы обучения

Собеседования

Web

JS

Python

С++

Java

Все темы

...

. Показать лучшие за
неделю

1 месяц

100 лет
Свежие

IT Юмор

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

5 марта 2015 в 22:19, Переводы

4 минуты

3688

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

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

Для установки на Linix можно просто скачать бинарники (есть 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": "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"
}

Перевод статьи «How to parse JSON string via command line on Linux»

Ещё интересное для вас:
— Тест: какой язык программирования вам стоит выбрать для изучения?
— Тест: как хорошо вы разбираетесь в Data Science?
— Соревнования и бесплатная онлайн-школа для программистов

JSON, Linux, Инструменты, Парсинг

Типичный программист

Вакансии в тему:

Разработчик Python/Django

Разработчик Python/Django

Ostrovok.ru, Москва

Инженер телефонии

Инженер телефонии

Ostrovok.ru, Москва

PHP-разработчик

PHP-разработчик

Urban Awards, Москва, от 60 000 до 80 000 ₽

Инженер по тестированию ПО беспилотных транспортных средств

Инженер по тестированию ПО беспилотных транспортных средств

Иннополис, Иннополис (Казань)

Инженер по внедрению систем мониторинга BMC

Инженер по внедрению систем мониторинга BMC

Ай-Теко, Москва

Все вакансии

Разместить вакансию

Также рекомендуем:

Код работает с первого раза? Ищите ошибку в компиляторе.

Соревнования и бесплатная онлайн-школа для программистов
Зарегистрироваться

Рассылка «Аргументы и функции»
Только самые важные IT-новости, один раз в сутки
Подписаться

События

20 июня–31 августа, онлайн: первый этап Huawei Honor Cup 2018

25 июня – 25 июля, онлайн: чемпионат по анализу данных ML Boot Camp

21–22 июля, Москва: конференция и хакатон по блокчейну и играм GameNode

21 июля, Тольятти: встреча разработчиков PANDA Meetup

22–23 июля, Москва: конференция PyCon Russia 2018

23 июля, онлайн: заканчивается регистрация в Летнюю школу машинного обучения ИТМО и ЦРТ
Все события

Вакансии

Консультант SAS MA

Санкт-Петербург

Integration Performance Manager

Москва

Full-stack разработчик ASP.NET

Санкт-Петербург

Инженер телефонии

Москва

Разработчик Oracle (PL/SQL)

Москва

Все вакансии

13 навыков разработчика, которыми рекомендуют обзавестись эксперты

Самый странный коммит в истории ядра Linux

Составлен список самых высокооплачиваемых IT-должностей

Российский процессор «Байкал» поступил в продажу по цене 39 900 рублей

Что не так в этом отрывке кода на С++?

Ты гик или нет: пройди тест

Топ-10 языков программирования в 2017 году по версии GitHub

Конечный автомат: теория и реализация

Как стать хорошим программистом: статья от Google

Задача с собеседований Google: продолжите последовательность

Как научить ребёнка писать код с детства

Король и 1000 бутылок вина: как найти одну отравленную?

О проекте РекламаМобильная версия

Пользовательское соглашение
Политика конфиденциальности

«Аргументы и функции» — рассылка новостей

Включить уведомления
Нашли опечатку? Выделите фрагмент и отправьте нажатием Ctrl+Enter.

×
Поздравляем!

Вы успешно подтвердили свою подписку на «Аргументы и функции».

Ждите первое письмо, оно придёт уже совсем скоро!

Понятно

.NETAdobeAmazonAndroidAPIAppleBig DataBitcoinC#C++CSSDeepMindDIYDjangoEthereumF8 2017FacebookFirefoxGitGitHubGoGoogleGoogle ChromeGoogle I/O 2017GTC 2017HardwareHoloLensHTMLIBMIDEInteliOSJavaJavaScriptKotlinLinuxmacOSMicrosoftMicrosoft Build 2017MITMozillaMySQLNode.jsOpen SourceOperaOraclePerlPHPPythonRaspberry PiReactRubyRuby on RailsRustSEOSQLStack OverflowSwiftTelegramTypeScriptUnityVPNWebAssemblyWi-FiWindowsWindows 10WordPressАвтопилотАлгоритмыАлгоритмы и структуры данныхБазы данныхБезопасностьБезопасный кодБиотехнологииБлогиБлокчейнБотыБраузерыВеб-дизайнВеб-разработкаВиртуальная реальностьВКонтактеГоловоломкиДизайн интерфейсов и UXДля мотивацииДля начинающихДля продвинутыхДля продолжающихЗадачи повышенной сложностиЗадачи умеренной сложностиИгры для программистовИнструментыИнструменты командной строкиИнтернетИнтернет вещейИскусственный интеллектИстория ITИстория успехаКарьераКвантовые вычисленияКодстайлКомпиляторыКомпьютерная графикаКомпьютерное зрениеКонференцииКрасивый хакКриптовалютыКриптографияЛучшая практикаМайнингМассивы и строкиМатематика и теория вероятностейМатериалы от друзей TprogerМашинное обучениеМетодологии разработкиМногопоточностьМобильная разработкаМузыкаНа английском языкеНавыкиНейронные сетиНизкоуровневое программированиеОблачные технологииОбучающие курсыОбучение программированиюОбъектно-ориентированное программированиеОлимпиадное программированиеОперационные системыОптимизацияОрганизация разработкиОсновные принципы программированияПарсингПартнёрский материалпесочницаРаботаРазработка игрРаспознаваниеРекурсия и динамикаРетроРоботыРоскомнадзорСервисыСетевые протоколыСобеседованиеСоветыСоциальные сетиСуперкомпьютерыТестированиеУправление проектамиФорматы хранения данныхФреймворкиФункциональное программированиеЧипокалипсисШпаргалкиЯзык ассемблераЯзык СиЯзыки программированияЯндекс

Спасибо за внимательность.
Опечатка уже отправлена нашим редакторам.

Спасибо!

Теперь редакторы в курсе.

Закрыть