Sortie Curl à afficher dans le format JSON lisible dans le script shell UNIX

dans mon script shell UNIX, lorsque j'exécute une commande curl, mon résultat curl s'affiche comme ci-dessous et je le redirige vers le fichier:

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

mais, je veux que cette sortie à mettre dans le format lisible JSON comme ci-dessous dans le fichier:

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

Pls " suggèrent

99
demandé sur Gilles Quenot 2014-12-02 01:18:45

6 réponses

Essayez de faire cela :

curl ... | json_pp 

ou avec à l'aide de l'identité de filtre :

curl ... | jq '.'

enter image description here

ou avec et :

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

Check https://stedolan.github.io/jq /

258
répondu Gilles Quenot 2018-04-05 20:05:38

je suppose que vous voulez prétifier la sortie JSON. Cela pourrait être réalisé en utilisant python:

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

28
répondu 0xbb 2014-12-01 22:24:25
  1. brew install jq
  2. command + | jq
  3. (exemple: curl localhost:5000/blocks | jq )
  4. Profitez-en!

enter image description here

16
répondu alexanderjsingleton 2017-09-15 20:39:32

j'ai trouvé json_reformat très pratique. Donc j'ai juste fait ce qui suit:

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

c'est ça!

5
répondu Raptor 2016-07-20 10:17:20

c'est pour ajouter à la réponse de Gilles. Il y a plusieurs façons d'y arriver, mais personnellement, je préfère quelque chose de léger, facile à mémoriser et universellement disponible (par exemple venir avec des installations LTS standard de votre type Linux préféré ou facile à installer) sur les systèmes communs *nix.

Voici les options dans leur ordre de préférence:

  1. Python Json.outil de module, par exemple, echo ' {"foo": "lorem", "bar": "ipsum"}' / python-mjson.outil (pour: presque disponible partout; contre: pas de code couleur)

  2. jq (peut nécessiter une installation unique) echo ' {"foo": "lorem", "bar": "ipsum"} ' / jq (cons: besoin d'installer jq; pour: codage couleur et polyvalent)

  3. json_pp( disponible en Ubuntu 16.04 LTS), p.ex. echo '{"foo": "lorem"," bar":" ipsum"} '/ json_pp

  4. pour les utilisateurs de Ruby, gem install jsonpretty echo ' {"foo": "lorem", "bar": "ipsum"} '/ jsonpretty

4
répondu Zhenhua 2017-06-22 13:23:33

Check out curljson

$ pip install curljson
$ curljson -i <the-json-api-url>
2
répondu mitnk 2018-08-29 10:02:39