it-swarm.com.ru

Вывод локонов для отображения в удобочитаемом формате JSON в сценарии оболочки UNIX

В моем сценарии оболочки UNIX, когда я выполняю команду curl, мой результат curl будет отображаться так, как показано ниже, и я перенаправляю его в файл:

{"type":"Show","id":"123","title":"name","description":"Funny","channelTitle":"ifood.tv","lastUpdateTimestamp":"2014-04-20T20:34:59","numOfVideos":"15"}

Но я хочу, чтобы этот вывод был помещен в читаемый формат JSON, как показано ниже в файле:

{"type":"Show",
"id":"123",
"title":"name",
"description":"Funny",
"channelTitle":"ifood.tv",
"lastUpdateTimestamp":"2014-04-20T20:34:59",
"numOfVideos":"15"}

Просьба предложить

148
Jams

Попробуйте сделать это:

curl ... | json_pp 

или с помощью jq с использованием фильтра идентификации:

curl ... | jq '.'

enter image description here

или с nodejs и bash :

curl ... | node <<< "var o = $(cat); console.log(JSON.stringify(o, null, 4));"

Проверьте https://stedolan.github.io/jq/

361
Gilles Quenot

Я предполагаю, что вы хотите предварительно подтвердить вывод JSON. Это может быть достигнуто с помощью Python:

curl http://localhost:8880/test.json | python -mjson.tool > out.json

33
0xbb
  1. brew install jq
  2. command + | jq
  3. (пример: curl localhost:5000/blocks | jq)
  4. Наслаждайтесь!

enter image description here

30
alexanderjsingleton

Я нашел json_reformat очень удобным. Поэтому я просто сделал следующее:

curl http://127.0.0.1:5000/people/api.json | json_reformat

вот и все!

5
Raptor

Это добавить к ответу Жиля. Есть много способов сделать это, но лично я предпочитаю что-то легковесное, легко запоминающееся и универсально доступное (например, поставляемое со стандартными установками LTS вашего предпочтительного варианта Linux или простое в установке) в распространенных системах * nix.

Вот варианты в их предпочтительном порядке:

  1. Модуль Python Json.tool, например, echo '{"foo": "lorem", "bar": "ipsum"}' | python -mjson.tool (плюсы: почти доступны везде; минусы: нет цветовой кодировки)

  2. jq (может потребоваться однократная установка) echo '{"foo": "lorem", "bar": "ipsum"}' | JQ (минусы: необходимо установить JQ; плюсы: цветное кодирование и универсальный)

  3. json_pp (доступно в Ubuntu 16.04 LTS), например, echo '{"foo": "lorem", "bar": "ipsum"}' | json_pp

  4. Для пользователей Ruby gem install jsonpretty echo '{"foo": "lorem", "bar": "ipsum"}' | jsonpretty

4
Zhenhua

Проверьте curljson

$ pip install curljson
$ curljson -i <the-json-api-url>
4
mitnk
python -m json.tool
Curl http://127.0.0.1:5000/people/api.json | python -m json.tool

также может помочь.

3
Vishnu