Терминал: CURL | дойти до JsonPath | Prettyprint JSON - PullRequest
6 голосов
/ 17 апреля 2011

Я ищу возможность напечатать части возвращенного документа JSON на оболочке.

Сейчас я передаю HTTP-ответ из cURL в python, чтобы его распечатать:

curl -vX GET http://foo.bar | python -mjson.tool

Но теперь я хотел бы знать, как я мог бы на самом деле "пройти" путь к подмассиву?

Если были, например, возвращенные данные JSON:

{
"value1": true,
"value2": {
            "subvalue1": "foo",
            "subvalue2": "bar"
          }
}

Как я могпечатать только подмассив в этом примере?

1 Ответ

2 голосов
/ 25 апреля 2011

Терри Джонс написал замечательный инструмент для выполнения именно этого несколько месяцев назад. Вот его запись в блоге об этом http://blogs.fluidinfo.com/terry/2010/11/25/jsongrep-py-python-for-extracting-pieces-of-json-objects/.

По сути, для вашего примера вы запустите

curl -vX GET http://foo.bar | jsongrep.py value2

Кстати, я не думаю, что ваш пример на самом деле является верным JSON. Подмассив (на самом деле подобъект в терминах JSON) должен быть

{
   "subvalue1": "foo",
   "subvalue2": "bar"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...