json-formatieren.de

Ratgeber · JSON 2026

JSON Pretty-Print und Minify: Trade-offs in der Praxis

Indent 2 ist Standard, Minify spart 20-30 % gegenüber 2-Indent. Warum gzip den Unterschied am Netzwerk fast komplett egalisiert.

Foto von Mateusz Viola

Von Mateusz Viola

Betreiber & redaktionelle Verantwortung json-formatieren.de

Was Pretty-Print macht

Pretty-Print fügt Einrückung und Zeilenumbrüche in JSON ein, damit es für Menschen lesbar wird. In JavaScript erzeugt mit:

JSON.stringify(obj, null, 2);   // 2 Leerzeichen
JSON.stringify(obj, null, '\t'); // Tab

Was Minify macht

Minify entfernt allen optionalen Whitespace - Output ist eine Zeile, ohne Einrückung. Default-Verhalten von JSON.stringify ohne space-Parameter:

JSON.stringify(obj);  // Minified

Größen-Unterschied in der Praxis

Payload-TypPretty (2)MinifyEinsparung+gzip
OpenAPI-Spec (mittel)284 KB198 KB30 %~3 %
REST-API-Response4,2 KB3,1 KB26 %~2 %
Analytics-Export540 MB390 MB28 %~5 %
config.json (klein)1,8 KB1,3 KB28 %~1 %

Regelmäßig: ~25-30 % Einsparung durch Minify. Nach gzip schmilzt das auf 1-5 %, weil gzip Whitespace-Redundanz ohnehin packt. Für transparente HTTP-Compression lohnt Minify daher fast nichts mehr.

Wann Pretty-Print

  • Code-Reviews: Git-Diffs auf minified JSON sind unleserlich
  • Konfigurationsdateien: Menschen müssen sie editieren können
  • Debug-Logs: wenn Operations händisch lesen will
  • Public-API-Documentation: Beispiel-Responses formatiert zeigen

Wann Minify

  • Production-API-Responses (auch wenn der Effekt klein ist)
  • Datenbank-Speicherung (jsonb in Postgres, BSON in MongoDB - Whitespace wäre Overhead)
  • Embedded-Strings in HTML/JS-Code (schöner kompakt)
  • Mobile-Clients mit teurer/langsamer Bandbreite (jedes KB zählt)

Indent-Convention

2 Leerzeichen Einrückung ist Industry-Standard:

  • JSON.stringify-Default in den meisten Tools
  • npm package.json wird mit 2 spaces serialisiert
  • VS Code Prettier-Default
  • Schmaler bei tiefer Verschachtelung als 4 spaces

4 Leerzeichen oder Tabs sind unüblich aber technisch valide. 3 Leerzeichen ist exotisch - unser Tool unterstützt es trotzdem für besondere Style-Guides.

JSON.stringify replacer-Parameter

Der zweite Parameter von JSON.stringify kann zur Filterung genutzt werden:

// Sensitive Felder ausblenden
JSON.stringify(user, (key, value) => {
  if (key === 'password' || key === 'apiKey') return undefined;
  return value;
}, 2);

Kann auch als Array verwendet werden - dann nur diese Keys ausgeben.

Sortierte Keys

JSON.stringify gibt Keys in Insertion-Order aus. Für deterministische Outputs (z.B. Hash-stabile Configs, reproducible builds) hilft eine eigene Sortier-Funktion oder Library wie json-stable-stringify. Unser Tool bietet "Schlüssel sortieren" als One-Click-Option.

Mehr zum Thema