Может ли кто-нибудь порекомендовать парсер JSON для Unix (выберите свой вариант), который можно было бы использовать для анализа значений из ответа JSON в конвейере?
json
parsing
unix
configuration
Jé Queue
источник
источник
npm install -g ramda-cli
Ответы:
Вы можете использовать этот синтаксический анализатор командной строки (который вы можете поместить в псевдоним bash, если хотите), используя модули, встроенные в ядро Perl:
источник
perl -e "use JSON; print to_json( decode_json(<>), { pretty => 1 } )"
Я предпочитаю то,
python -m json.tool
что по умолчанию доступно в большинстве операционных систем * nix.Примечание. В зависимости от вашей версии Python все ключи могут быть отсортированы в алфавитном порядке, что может быть хорошо, а может и не быть. В python 2 по умолчанию ключи сортировались, тогда как в python 3.5+ они больше не сортируются автоматически, но у вас есть возможность явно сортировать по ключу:
источник
json.tool
это просто короткая рука, чтобы красиво печатать json. Если вам нужно извлекать / манипулировать данными json в сценарии оболочки, я бы использовалjq
это просто потрясающе в том, что делает ...json.tool
делает только две вещи: проверяет и печатает json. Он НЕ анализирует значения в json, как этоjq
делает.Если вы ищете портативный инструмент, скомпилированный на C:
http://stedolan.github.com/jq/
С веб-сайта:
Учебник : http://stedolan.github.com/jq/tutorial/
Руководство : http://stedolan.github.com/jq/manual/
Загрузить : http://stedolan.github.com/jq/download/
источник
apt install jq
.jq
.Я создал модуль, специально разработанный для работы с JSON в командной строке:
https://github.com/ddopson/underscore-cli
Это позволяет вам очень легко делать мощные вещи:
И у него есть один из лучших доступных форматеров JSON для "умных пробелов":
Если у вас есть какие-либо пожелания по функциям, прокомментируйте этот пост или добавьте проблему в github. Я был бы рад расставить приоритеты в функциях, которые нужны членам сообщества.
источник
wget
URL-адресов каждый URL.underscore
для разбора вложенный json с вложенными объектами и массивами?Оформить заказ TickTick .
Это настоящий парсер Bash JSON.
источник
Также имеется набор инструментов для обработки командной строки JSON. если в вашем стеке есть node.js и npm.
И другой команда "json" для массирования JSON в командной строке Unix.
А вот и другие альтернативы:
Связано: Инструмент командной строки для анализа ввода JSON для Unix?
источник
npm install json
.json
похоже, теперь заменен совершенно другим пакетом.Кто-нибудь упомянул Jshon или JSON.sh?
https://github.com/keenerd/jshon
конвейер json к нему, и он просматривает объекты json и распечатывает путь к текущему объекту (в виде массива JSON), а затем к объекту без пробелов.
http://kmkeen.com/jshon/
Jshon загружает текст json из stdin, выполняет действия, затем отображает последнее действие в stdout, а также был включен в обычный конвейер обработки текста.
источник
brew install jshon
,cat *.json | jshon
Вы можете попробовать jsawk, как предлагается в этом ответе .
На самом деле вы могли бы создать для этого быстрый скрипт на Python.
источник
Для Bash / Python вот базовая оболочка для python
simplejson
:Он действительно обрабатывает данные только в стиле вложенного словаря, но он работает для того, что мне было нужно, и полезен для просмотра json. Наверное, можно было бы адаптировать по вкусу.
В любом случае, что-то самодельное для тех, кто не хочет использовать еще одну внешнюю зависимость. За исключением, конечно, питона.
Ex.
json_parser {field1} {field2}
будет работатьprint myjson['{field1}']['{field2}']
, выдавая либо ключи, либо значения, связанные с{field2}
, разделенные пробелами.источник
Я только что создал jkid , небольшой обозреватель json в командной строке, который я сделал для легкого изучения больших объектов json. Объекты можно исследовать «трансверсально», и есть опция «предварительного просмотра», чтобы избежать переполнения консоли.
источник
jkid
на Mac?