CodeKitHub
Ako si prezrieť obrovský JSON súbor bez toho, aby vám padol prehliadač

Ako si prezrieť obrovský JSON súbor bez toho, aby vám padol prehliadač

Publikované 23. 7. 2026

Vloženie 50MB API výpisu alebo kompletného exportu databázy do akéhokoľvek JSON nástroja v prehliadači — vrátane tohto — kartu spomalí alebo rovno zamrazí. Nie je to chyba konkrétneho nástroja, je to vlastnosť toho, ako prehliadače vykresľujú text a DOM. Tu je popis, čo sa v skutočnosti deje a ako to obísť.

Prečo veľké JSON súbory prehliadač zamrazia, a nie len „pomaly načítajú“

Sčítavajú sa dva samostatné náklady:

  1. Náklad na parsovanie. JSON.parse na správne sformovanom 50MB reťazci trvá na bežnom notebooku zhruba pol sekundy až pár sekúnd — badateľné, ale nie skutočný problém.
  2. Náklad na vykresľovanie. Toto je to, čo kartu naozaj zamrazí. Ak nástroj vykreslí naformátovaný výsledok ako obrovský blok textu (alebo horšie, ako zbaliteľný strom s DOM uzlom na každý kľúč), prehliadač musí rozvrhnúť a vymaľovať potenciálne milióny DOM uzlov. Toto robí kartu neresponzívnou, nie parsovanie.

Limit veľkosti, na ktorý narážate, teda takmer nikdy nepochádza zo špecifikácie JSON ani z parsera — pochádza z požiadavky, aby prehliadač naraz nakreslil obrovské množstvo textu alebo vnoreného UI.

Skutočný postup pre naozaj veľké súbory

Neotvárajte celý súbor nikde v prehliadači. Namiesto toho:

  1. Najprv vytiahnite len časť, ktorú potrebujete. Ak ladíte jeden pokazený záznam v 200MB výpise, nepotrebujete pred sebou zvyšných 199MB. Nástroje príkazového riadka to zvládnu bez toho, aby celý súbor načítali do pamäte tak, ako to robí karta prehliadača:
    # 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. V prehliadači formátujte len ten fragment. Pár KB extrahovaného JSON-u sa naformátuje okamžite a je skutočne čitateľných — je to ten istý návyk „formátuj len fragment, ktorý ťa zaujíma“, ktorý sa oplatí budovať pri akomkoľvek veľkom logu či výpise, nielen pri tejto konkrétnej chybe.
  3. Ak potrebujete skúmať štruktúru, nie hodnoty, spustite si najprv lokálne jq 'keys' alebo jq '. | length', aby ste pochopili tvar dát, skôr než sa rozhodnete, čo extrahovať. Nemusíte vidieť 50 000 položiek poľa na to, aby ste vedeli, že pole má 50 000 položiek.

Kedy je nástroj v prehliadači úplne v poriadku

Pri drvivej väčšine reálneho ladenia — API odpoveď, konfiguračný súbor, webhook payload — pracujete s kilobajtmi až niekoľkými megabajtmi, nie so stovkami. V tomto rozsahu je vloženie priamo do formátovača s okamžitým, čitateľným výstupom a presnými pozíciami chýb rýchlejšie než vôbec siahať po príkazovom riadku. Veľkosť, pri ktorej to prestáva fungovať, je oveľa vyššia, než väčšina ľudí predpokladá; skutočné problémy spôsobujú konkrétne „desiatky megabajtov a viac“, nie „viac než jedna stránka“.

Rýchly prehľad

Veľkosť súboru Čo robiť
Do ~5MB Vložte priamo do formátovača v prehliadači — okamžité, v pohode
~5–30MB Stále zvládnuteľné, ale počítajte s krátkou pauzou; formátujte len to, čo potrebujete čítať
30MB+ Najprv vytiahnite relevantný fragment cez jq/grep a formátujte len ten

Nástroj na opravu tohto nepotrebuje „režim veľkých súborov“ — riešením je extrakcia pred prezeraním, čo je zmena pracovného postupu, nie obmedzenie nástroja.

← Späť na blog