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
6 réponses
Essayez de faire cela :
curl ... | json_pp
ou avec jq à l'aide de l'identité de filtre :
curl ... | jq '.'
curl ... | node <<< "var o = $(cat); console.log(JSON.stringify(o, null, 4));"
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
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!
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:
-
Python Json.outil de module, par exemple, echo ' {"foo": "lorem", "bar": "ipsum"}' / python-mjson.outil (pour: presque disponible partout; contre: pas de code couleur)
-
jq (peut nécessiter une installation unique) echo ' {"foo": "lorem", "bar": "ipsum"} ' / jq (cons: besoin d'installer jq; pour: codage couleur et polyvalent)
-
json_pp( disponible en Ubuntu 16.04 LTS), p.ex. echo '{"foo": "lorem"," bar":" ipsum"} '/ json_pp
-
pour les utilisateurs de Ruby, gem install jsonpretty echo ' {"foo": "lorem", "bar": "ipsum"} '/ jsonpretty