Подтвердить что ты не робот

Отображение вывода curl в удобочитаемом формате JSON в сценарии оболочки Unix

В моем сценарии оболочки Unix, когда я выполняю команду 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"}

Как мне отформатировать вывод таким образом?

4b9b3361

Ответ 1

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

curl ... | json_pp 

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

curl ... | jq '.'

enter image description here

или с и :

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

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

Ответ 2

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

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

Ответ 3

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

enter image description here

Ответ 4

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

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

что это!

Ответ 5

python -m json.tool
Curl http://127.0.0.1:5000/people/api.json | python -m json.tool

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

Ответ 6

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

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

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

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

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

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

Ответ 7

Проверьте curljson

$ pip install curljson
$ curljson -i <the-json-api-url>

Ответ 8

Вы можете использовать этот модуль узла

[sudo] npm i -g json;//предлагаем не использовать привилегии root для установки модуля узла

затем просто добавьте |json после curl. curl http://localhost:8880/test.json |json

Ответ 9

Просто добавьте ключевое слово ?pretty к вашей команде curl as-
Если ваша команда curl выглядит так: curl -XGET 'http://localhost:9200/_cluster/state'
то, чтобы иметь довольно выходное использование, как это -
curl -XGET 'http://localhost:9200/_cluster/state'?pretty