389 Stimmen

Die Ausgabe von cURL im Unix-Shell-Skript im lesbaren JSON-Format anzeigen

In meinem Unix-Shell-Skript, wenn ich einen Curl-Befehl ausführe, wird das Ergebnis wie unten angezeigt, das ich in eine Datei umleite:

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

Aber ich möchte dieses Ausgabe im lesbaren JSON-Format wie unten in der Datei platzieren:

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

Wie kann ich die Ausgabe auf diese Weise formatieren?

29voto

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

Kann auch helfen.

19voto

Raptor Punkte 3539

Ich fand json_reformat sehr praktisch. Also habe ich einfach Folgendes getan:

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

das ist alles!

17voto

avivamg Punkte 8416

Motivation: Sie möchten die JSON-Antwort nach dem Curl-Befehl hübsch ausdrucken.

Lösung: json_pp - Befehlszeilentool, das zwischen einigen Eingabe- und Ausgabeformaten konvertiert (eines davon ist JSON). Dieses Programm wurde von json_xs kopiert und modifiziert. Das Standard-Eingabeformat ist JSON und das Standard-Ausgabeformat ist JSON mit der Option "pretty".

Synposis: json_pp [-v] [-f from_format] [-t to_format] [-json_opt options_to_json1[,options_to_json2[,...]]]

Formel: | json_pp

Beispiel:

Anfrage

curl -X https://jsonplaceholder.typicode.com/todos/1 | json_pp 

Antwort

{
   "completed" : false,
   "id" : 1,
   "title" : "delectus aut autem",
   "userId" : 1
}

7voto

mitnk Punkte 2909

Schau dir curljson an

$ pip install curljson
$ curljson -i

5voto

Tasawar Hussain Punkte 650

Vielfältige Funktionen (slice, filter und map sowie strukturierte Transformation) zusätzlich zur Formatierung.

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

curl 'https://api.github.com/repos/stedolan/jq/commits?per_page=5' | jq '.[0]'

{
  "sha": "d25341478381063d1c76e81b3a52e0592a7c997f",
  "commit": {
    "author": {
      "name": "Stephen Dolan",
      "email": "mu@netsoc.tcd.ie",
      "date": "2013-06-22T16:30:59Z"
    },
    "committer": {
      "name": "Stephen Dolan",
      "email": "mu@netsoc.tcd.ie",
      "date": "2013-06-22T16:30:59Z"
    },
    "message": "Pull-Anforderung #162 von stedolan/utf8-fixes zusammenführen\n\nUtf8-Fixes. Schließt #161",
    "tree": {
      "sha": "6ab697a8dfb5a96e124666bf6d6213822599fb40",
      "url": "https://api.github.com/repos/stedolan/jq/git/trees/6ab697a8dfb5a96e124666bf6d6213822599fb40"
    },
    "url": "https://api.github.com/repos/stedolan/jq/git/commits/d25341478381063d1c76e81b3a52e0592a7c997f",
    "comment_count": 0
  },
  "url": "https://api.github.com/repos/stedolan/jq/commits/d25341478381063d1c76e81b3a52e0592a7c997f",
  "html_url": "https://github.com/stedolan/jq/commit/d25341478381063d1c76e81b3a52e0592a7c997f",
  "comments_url": "https://api.github.com/repos/stedolan/jq/commits/d25341478381063d1c76e81b3a52e0592a7c997f/comments",
  "author": {
    "login": "stedolan",
    "id": 79765,
    "avatar_url": "https://avatars.githubusercontent.com/u/79765?v=3",
    "gravatar_id": "",
    "url": "https://api.github.com/users/stedolan",
    "html_url": "https://github.com/stedolan",
    "followers_url": "https://api.github.com/users/stedolan/followers",
    "following_url": "https://api.github.com/users/stedolan/following{/other_user}",
    "gists_url": "https://api.github.com/users/stedolan/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/stedolan/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/stedolan/subscriptions",
    "organizations_url": "https://api.github.com/users/stedolan/orgs",
    "repos_url": "https://api.github.com/users/stedolan/repos",
    "events_url": "https://api.github.com/users/stedolan/events{/privacy}",
    "received_events_url": "https://api.github.com/users/stedolan/received_events",
    "type": "Benutzer",
    "site_admin": false
  },
  "committer": {
    "login": "stedolan",
    "id": 79765,
    "avatar_url": "https://avatars.githubusercontent.com/u/79765?v=3",
    "gravatar_id": "",
    "url": "https://api.github.com/users/stedolan",
    "html_url": "https://github.com/stedolan",
    "followers_url": "https://api.github.com/users/stedolan/followers",
    "following_url": "https://api.github.com/users/stedolan/following{/other_user}",
    "gists_url": "https://api.github.com/users/stedolan/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/stedolan/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/stedolan/subscriptions",
    "organizations_url": "https://api.github.com/users/stedolan/orgs",
    "repos_url": "https://api.github.com/users/stedolan/repos",
    "events_url": "https://api.github.com/users/stedolan/events{/privacy}",
    "received_events_url": "https://api.github.com/users/stedolan/received_events",
    "type": "Benutzer",
    "site_admin": false
  },
  "parents": [
    {
      "sha": "54b9c9bdb225af5d886466d72f47eafc51acb4f7",
      "url": "https://api.github.com/repos/stedolan/jq/commits/54b9c9bdb225af5d886466d72f47eafc51acb4f7",
      "html_url": "https://github.com/stedolan/jq/commit/54b9c9bdb225af5d886466d72f47eafc51acb4f7"
    },
    {
      "sha": "8b1b503609c161fea4b003a7179b3fbb2dd4345a",
      "url": "https://api.github.com/repos/stedolan/jq/commits/8b1b503609c161fea4b003a7179b3fbb2dd4345a",
      "html_url": "https://github.com/stedolan/jq/commit/8b1b503609c161fea4b003a7179b3fbb2dd4345a"
    }
  ]
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X