JSON Pretty Print
Hier formatieren, oder den Einzeiler für Python, JavaScript, jq und sechs weitere Sprachen kopieren.
Nichts, was Sie einfügen, verlässt Ihren Browser. Die connect-src Erlaubnisliste macht daraus eine Garantie des Browsers statt eines Versprechens. Selbst überprüfen
Pretty Printing und Formatieren sind dieselbe Operation unter zwei Namen. Fügen Sie oben ein Dokument ein, um es hier zu erledigen, oder nehmen Sie den Einzeiler für die Sprache, in der Sie ohnehin gerade arbeiten.
Die Beispiele unten sind die Varianten, die tatsächlich funktionieren - samt der Argumente, die man meistens erst entdeckt, wenn die Ausgabe bereits falsch aussieht.
Die Argumente, über die alle stolpern
- Pythons ensure_ascii
- Steht standardmäßig auf True und escapt damit jedes Nicht-ASCII-Zeichen. Ein Dokument voller Namen oder Emoji kommt als Wand aus \u-Sequenzen zurück. Übergeben Sie ensure_ascii=False.
- Pythons separators beim Minifizieren
- json.dumps lässt nach jedem Komma und Doppelpunkt ein Leerzeichen stehen, sofern Sie nicht separators=(",", ":") übergeben - der naive Minify-Aufruf minifiziert also nicht.
- PHPs Schrägstrich-Escaping
- json_encode escapt standardmäßig Schrägstriche und Unicode. JSON_UNESCAPED_SLASHES und JSON_UNESCAPED_UNICODE schalten das ab. PHP rückt außerdem mit vier Leerzeichen ein und lässt Sie das nicht ändern.
- Gos HTML-Escaping
- Der Encoder escapt <, > und & standardmäßig zu \u003c und Verwandten, damit die Ausgabe sicher in HTML eingebettet werden kann. SetEscapeHTML(false) schaltet das ab.
- Jede dieser Varianten schickt Ihre Zahlen auf eine Rundreise
- Parsen und neu serialisieren schreibt den Zahlentext um. Aus 1.50 wird 1.5, und eine 19-stellige ID verliert ihre letzten Stellen. Go ist die Ausnahme: json.Indent arbeitet auf den rohen Bytes.
How to do this in code
Pretty Printing in neun Sprachen und Werkzeugen.
js JavaScript
JSON.stringify(JSON.parse(text), null, 2) py Python
json.dumps(json.loads(text), indent=2, ensure_ascii=False)
# From a file, on the command line
python -m json.tool --indent 2 --no-ensure-ascii in.json out.json sh jq und die Shell
jq . file.json
curl -s https://api.example.com/x | jq .
pbpaste | jq . # macOS, from the clipboard
jq -S . file.json # sorted keys, for stable diffs go Go
json.Indent formatiert die Bytes neu, ohne zu dekodieren - Ihre Zahlen bleiben also unangetastet.
var out bytes.Buffer
json.Indent(&out, data, "", " ")
fmt.Println(out.String()) rb Ruby
JSON.pretty_generate(JSON.parse(text)) php PHP
json_encode(json_decode($text), JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE) java Java
ObjectMapper mapper = new ObjectMapper();
Object value = mapper.readValue(text, Object.class);
String pretty = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(value); rs Rust
Aktivieren Sie in serde_json die Funktion arbitrary_precision, damit der Zahlentext die Rundreise unverändert übersteht.
let value: serde_json::Value = serde_json::from_str(text)?;
let pretty = serde_json::to_string_pretty(&value)?; cs C#
using var doc = JsonDocument.Parse(text);
var pretty = JsonSerializer.Serialize(doc, new JsonSerializerOptions { WriteIndented = true }); Häufige Fragen
- Ist Pretty Print etwas anderes als Beautify oder Formatieren?
- Nein. Alle drei bedeuten, Leerraum hinzuzufügen, damit ein Mensch das Dokument lesen kann. Verschiedene Communities haben sich nur auf verschiedene Wörter geeinigt.
- Wie gebe ich JSON in VS Code lesbar aus?
- Öffnen Sie die Datei und drücken Sie Umschalt+Alt+F unter Windows und Linux oder Umschalt+Option+F unter macOS. Bei einem Schnipsel, den Sie in eine unbenannte Datei eingefügt haben, stellen Sie zuerst den Sprachmodus auf JSON, sonst weiß der Formatierer nichts damit anzufangen.
- Wie gebe ich eine curl-Antwort lesbar aus?
- Leiten Sie sie weiter: curl -s URL | jq . wenn Sie jq haben, sonst curl -s URL | python -m json.tool. Geben Sie curl das -s mit, sonst landet die Fortschrittsanzeige in der Pipe.