JSON Toolkit

Wie große JSON-Dateien kann ein Browser bewältigen

Fazit: Es gibt keine feste Grenze; die Beschränkung ist das Speicherbudget Ihres Tabs. Eine 20-MB-Datei wird nach dem Parsen typischerweise 60–100 MB, und das hervorgehobene DOM kann das noch einmal verdoppeln.

Einsteiger~3 Min. LesezeitVeröffentlicht 2026-10-30Aktualisiert 2026-10-30
Browser-Speichergrenzen bei der Arbeit mit großem JSON

Kurz gesagt: Es gibt keine feste Obergrenze – schätzen Sie aus dem Speicher, denn das geparste Objekt kostet meist das 3- bis 5-Fache der Textgröße, und das hervorgehobene DOM verdoppelt das noch einmal; über 50 MB oder wenn die Zahl der Datensätze auf oberster Ebene in die Hunderttausende läuft, schneiden Sie, streamen Sie oder wechseln Sie zu einer lokalen App, statt es in einen Tab zu zwingen.

Wohin der Speicher geht

Ein 20-MB-JSON-Text existiert dreimal:

  1. Der Rohstring: 20 MB
  2. Der geparste Objektgraph: meist 60–100 MB (duplizierte Strings, Objekt-Header, Hash-Tabellen)
  3. Das hervorgehobene DOM: ein Knoten pro Token, leicht noch einmal das Doppelte

Editor-Puffer, Undo-Stacks und Syntax-Highlight-Caches kommen dazu. Eine „20-MB-Datei“ kann 200 MB resident überschreiten.

Faustregeln

Größe Desktop Mobile
< 5 MB Flüssig Flüssig
5–20 MB Leichte Verzögerung, 1–3 s zum Formatieren Spürbare Verzögerung, kann einfrieren
20–50 MB Machbar, aber schwer; Hervorhebung ausschalten Wahrscheinlich Absturz
> 50 MB Nicht empfohlen Nicht nutzbar

Diese Werte verschieben sich je nach Gerät, Browser-Version und ob Hervorhebung an ist. Verwenden Sie sie für Größenordnungen, nicht als Garantien.

Warum mehr RAM das nicht behebt

Tabs haben ein hartes Limit, und es zu überschreiten bedeutet sofortigen Absturz statt sanfter Degradierung. Mobile ist noch strenger und fordert im niedrigen Hunderter-MB-Bereich zurück.

Mit großen Dateien arbeiten

Schneiden.

head -c 1048576 big.json | jq .
jq '.items[0:100]' big.json

Streamen. stream-json, ijson, jq --stream verarbeiten Datensatz für Datensatz mit Speicher unabhängig von der Dateigröße.

Eine lokale App verwenden. Keine Tab-Limits, voller Maschinenspeicher: Desktop-Download.

Das Format ändern. Logs und Ereignisströme sollten von Anfang an NDJSON sein – ein Datensatz pro Zeile, konstruktionsbedingt streamfähig.

Das Backend bitten zu beschneiden. Braucht die UI drei Felder, sind dreihundert zu senden ein API-Designproblem, keine Browser-Beschränkung.

Die Datei einschätzen

ls -lh data.json
jq 'length' data.json

Ist length in den Hunderttausenden, sind Paginierung oder Streaming die Antwort, unabhängig von der Bytegröße.

FAQ

Wie erkenne ich, in welches Größenband meine Datei fällt?

Prüfen Sie die Bytes mit ls -lh und die Datensatzzahl auf oberster Ebene mit jq 'length'. Dateien unter ein paar Megabyte laufen überall flüssig, 20–50 MB funktionieren auf dem Desktop, ruckeln aber, und über 50 MB sollten Sie streamen oder ein Kommandozeilenwerkzeug verwenden.

Was soll ich mit einer Datei über 50 MB tun?

Schneiden Sie sie mit head -c oder streamen Sie sie mit jq, stream-json oder jq --stream, damit der Speicher unabhängig von der Dateigröße bleibt. Müssen Sie das ganze Dokument prüfen, verwenden Sie die Desktop-App, die nicht an das Speicherbudget eines Tabs gebunden ist. Logs und Ereignisströme gehören ohnehin in NDJSON.

Weiterführende Literatur