Dans mon script Unix Shell, lorsque j'exécute une commande curl, le résultat s'affiche comme ci-dessous, sur lequel je redirige 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 mette dans le format JSON lisible 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"}
Comment formater la sortie de cette façon?
Essayez de faire ceci:
curl ... | json_pp
ou avec jq en utilisant le filtre d'identité:
curl ... | jq '.'
curl ... | node <<< "var o = $(cat); console.log(JSON.stringify(o, null, 4));"
Vérifier https://stedolan.github.io/jq/
J'imagine que vous voulez épurer 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. Alors je viens de faire ce qui suit:
curl http://127.0.0.1:5000/people/api.json | json_reformat
c'est ça!
python -m json.tool
Curl http://127.0.0.1:5000/people/api.json | python -m json.tool
peut aussi aider.
Ceci est à ajouter à la réponse de Gilles. Il existe de nombreuses façons de le faire, mais personnellement, je préfère quelque chose de léger, facile à mémoriser et disponible dans le monde entier (par exemple, fourni avec des installations LTS standard de votre version préférée de Linux ou facile à installer) sur des systèmes * nix courants.
Voici les options dans leur ordre préféré:
Module Python Json.tool, par exemple, echo '{"foo": "lorem", "bar": "ipsum"}' | python -mjson.tool (avantages: presque disponible partout; contre: pas de code couleur)
jq (peut nécessiter une installation unique) echo '{"foo": "lorem", "bar": "ipsum"}' | jq (contre: il faut installer jq; avantages: codage couleur et polyvalent)
json_pp (disponible dans Ubuntu 16.04 LTS), par exemple. echo '{"foo": "lorem", "bar": "ipsum"}' | json_pp
Pour les utilisateurs de Ruby, gem install jsonpretty echo '{"foo": "lorem", "bar": "ipsum"}' | Jsonpretty
Départ curljson
$ pip install curljson
$ curljson -i <the-json-api-url>
Vous pouvez utiliser ce module de noeud
Sudo npm i -g json
;
puis ajoutez simplement |json
après curl. curl http://localhost:8880/test.json |json