CodeKitHub
Slik viser du en stor JSON-fil uten at nettleseren krasjer

Slik viser du en stor JSON-fil uten at nettleseren krasjer

Publisert 23. juli 2026

Å lime inn en 50 MB stor API-dump eller en full databaseeksport i et nettleserbasert JSON-verktøy — dette inkludert — vil gjøre at fanen blir treg eller fryser helt. Det er ikke en feil i et bestemt verktøy, det er en egenskap ved hvordan nettlesere gjengir tekst og DOM. Her er hva som faktisk skjer og hvordan du kan omgå det.

Hvorfor store JSON-filer fryser nettleseren, ikke bare «laster tregt»

To separate kostnader legger seg oppå hverandre:

  1. Parsekostnad. JSON.parse på en velformet streng på 50 MB tar omtrent et halvt til et par sekunder på en vanlig bærbar PC — merkbart, men ikke det egentlige problemet.
  2. Rendringskostnad. Dette er den som faktisk fryser fanen. Hvis et verktøy gjengir det formaterte resultatet som en gigantisk tekstblokk (eller enda verre, et sammenleggbart tre med en DOM-node per nøkkel), må nettleseren legge ut og tegne potensielt millioner av DOM-noder. Dette er det som gjør fanen uresponsiv, ikke parsingen.

Så størrelsesgrensen du treffer, kommer nesten aldri fra JSON-spesifikasjonen eller parseren — den kommer fra å be en nettleser tegne en enorm mengde tekst eller nøstet UI på én gang.

Den faktiske arbeidsflyten for genuint store filer

Ikke åpne hele filen noe sted i en nettleser. Gjør i stedet dette:

  1. Hent ut bare den delen du trenger, først. Hvis du feilsøker én ødelagt post inne i en 200 MB stor dump, trenger du ikke de andre 199 MB-ene foran deg. Kommandolinjeverktøy håndterer dette uten noensinne å laste hele filen inn i minnet slik en nettleserfane gjø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 bare det fragmentet i nettleseren. Noen få KB med utplukket JSON formateres umiddelbart og er faktisk lesbart — dette er den samme «formater bare fragmentet du bryr deg om»-vanen som er verdt å bygge for enhver stor logg eller dump, ikke bare denne spesifikke feilen.
  3. Hvis du må inspisere struktur, ikke verdier, kjør jq 'keys' eller jq '. | length' lokalt først for å forstå formen før du bestemmer hva du skal hente ut. Du trenger ikke å se 50 000 array-elementer for å vite at arrayen har 50 000 elementer.

Når et nettleserverktøy er genuint greit

For de aller fleste reelle feilsøkinger — en API-respons, en konfigurasjonsfil, en webhook-nyttelast — har du med kilobytes til noen få megabytes å gjøre, ikke hundrevis. I det området er det å lime rett inn i en formaterer og få umiddelbar, lesbar output med eksakte feilplasseringer, raskere enn å i det hele tatt gripe til kommandolinjen. Størrelsen der dette bryter sammen er mye høyere enn de fleste antar; det er spesifikt «titalls megabytes og oppover» som skaper reelle problemer, ikke «mer enn én side».

Hurtigreferanse

Filstørrelse Hva du bør gjøre
Under ~5 MB Lim rett inn i en nettleser-formaterer — umiddelbart, greit
~5–30 MB Fortsatt håndterbart, men forvent en kort pause; formater bare det du trenger å lese
30 MB+ Hent ut det relevante fragmentet med jq/grep først, formater bare det

Verktøyet trenger ikke en «stor fil-modus» for å fikse dette — løsningen er å hente ut før du viser, noe som er en endring i arbeidsflyt, ikke en verktøybegrensning.

← Tilbake til bloggen