CodeKitHub
Sådan viser du en kæmpe JSON-fil uden at bryde din browser ned

Sådan viser du en kæmpe JSON-fil uden at bryde din browser ned

Udgivet 23. jul. 2026

At sætte et 50MB API-dump eller en fuld databaseeksport ind i et browserbaseret JSON-værktøj — dette inklusive — vil gøre fanen langsom eller fryse den helt. Det er ikke en fejl i et specifikt værktøj, det er en egenskab ved, hvordan browsere renderer tekst og DOM. Her er, hvad der faktisk sker, og hvordan du kommer udenom det.

Hvorfor store JSON-filer fryser browseren, ikke bare “loader langsomt”

To separate omkostninger lægger sig oven på hinanden:

  1. Parsing-omkostning. JSON.parse på en velformet 50MB-streng tager cirka et halvt til et par sekunder på en almindelig bærbar — mærkbart, men ikke det egentlige problem.
  2. Rendering-omkostning. Det er den, der faktisk fryser fanen. Hvis et værktøj renderer det formaterede resultat som en gigantisk tekstblok (eller værre, et sammenklappeligt træ med en DOM-node pr. nøgle), skal browseren layoute og male potentielt millioner af DOM-noder. Det er, hvad der gør fanen uresponsiv, ikke selve parsingen.

Så den størrelsesgrænse, du støder på, kommer næsten aldrig fra selve JSON-specifikationen eller parseren — den kommer fra at bede en browser om at tegne en enorm mængde tekst eller indlejret UI på én gang.

Den faktiske arbejdsgang til virkelig store filer

Åbn ikke det hele nogen steder i en browser. Gør i stedet dette:

  1. Udtræk kun den del, du skal bruge, først. Hvis du fejlsøger én ødelagt post inde i et 200MB-dump, behøver du ikke de resterende 199MB foran dig. Kommandolinjeværktøjer klarer det uden nogensinde at loade hele filen ind i hukommelsen, sådan som en browserfane gør:
    # pull out one top-level key from a huge file, streaming
    jq '.results[42]' huge-file.json > fragment.json
    
    # or just grep for context around a known string first
    grep -n '"user_id": 88214' huge-file.json
  2. Formater kun det fragment i browseren. Et par KB udtrukket JSON formaterer øjeblikkeligt og er faktisk læseligt — det er den samme “formater kun det fragment, du er interesseret i”-vane, det er værd at opbygge til enhver stor log eller dump, ikke kun denne specifikke fejl.
  3. Hvis du skal inspicere struktur, ikke værdier, kør jq 'keys' eller jq '. | length' lokalt først for at forstå formen, før du beslutter, hvad du skal udtrække. Du behøver ikke se 50.000 array-elementer for at vide, at arrayet har 50.000 elementer.

Hvornår et browserværktøj rent faktisk er fint

For langt de fleste reelle fejlsøgninger — et API-svar, en konfigurationsfil, en webhook-payload — arbejder du med kilobytes til et par megabytes, ikke hundreder. I det interval er det hurtigere at sætte direkte ind i en formatterer og få øjeblikkeligt, læseligt output med præcise fejlplaceringer end overhovedet at gribe fat i kommandolinjen. Den størrelse, hvor dette begynder at gå galt, er meget højere, end de fleste tror; det er specifikt “titusindvis af megabytes og opefter”, der giver reelle problemer, ikke “mere end én side”.

Hurtig oversigt

Filstørrelse Hvad du skal gøre
Under ~5MB Sæt direkte ind i en browser-formatterer — øjeblikkeligt, helt fint
~5–30MB Stadig fungerende, men forvent en kort pause; formater kun det, du skal læse
30MB+ Udtræk det relevante fragment med jq/grep først, formater kun det

Værktøjet har ikke brug for en “large file mode” til at løse dette — løsningen er at udtrække, før du ser, hvilket er en ændring i arbejdsgang, ikke en værktøjsbegrænsning.

← Tilbage til bloggen