Если вам удобно работать с линейно-ориентированными инструментами, такими как sed, grep, awk и т. Д., И вы хотите выполнять только простые извлечения пар ключ / значение, вам, вероятно, будет проще работать с jsonpipe
чем jq
.
По умолчанию ключи печатаются как /
-ограниченный путь, отделенный от значений табуляцией.
например.
$ json='{"TopicArn": "arn:aws:sns:us-west-2:596873354795:demo"}'
$ echo "$json" | jsonpipe
/ {}
/TopicArn "arn:aws:sns:us-west-2:596873354795:demo"
$ echo "$json" | jsonpipe | awk -F'\t' '$1 == "/TopicArn" {print $2}'
"arn:aws:sns:us-west-2:596873354795:demo"
Подробная информация из пакета debian:
Пакет: python-jsonpipe
Описание-ru: преобразование JSON в удобный для UNIX строковый формат
jsonpipe просматривает объект JSON и создает простой, построчный текстовый формат, который может обрабатываться всеми любимыми UNIX-программами, такими как grep, sed, awk, cut и diff. Он также может быть ценным для языков программирования - фактически, изначально он был задуман как способ написания простых тестовых утверждений для вывода JSON без слишком тесной привязки тестов к конкретной используемой структуре.
Домашняя страница: http://pypi.python.org/pypi/jsonpipe