Mi az a JSON tömörítés?
JSON (JavaScript Object Notation) egy könnyűsúlyú, szöveges adatcsere formátum, amit az RFC 8259 és az ECMA-404 határoz meg. A tömörítés eltávolít minden szóközt, tabot és újsort, ami egy karakterlánc literálon kívül van — az értékek bájt szinten megőrződnek, csak a kozmetikai szóközök kerülnek eltávolításra. A kimenet pontosan ugyanarra az értékre elemződik, mint a bemenet.
Hogyan működik a JSON tömörítés?
A bemeneted teljes egészében a böngésződben kerül feldolgozásra a beépített JSON.parse és JSON.stringify függvények segítségével. A magas szintű lépések:
- A bemeneted szó szerint beolvasásra kerül a szövegmezőből — minden bájt, amit beillesztettél, lokálisan a memóriában marad.
- A böngésző elemzi a
JSON.parsesegítségével. Ha a bemenet nem érvényes JSON, az elemző egySyntaxError-t dob, ami elkapásra kerül és szó szerint megjelenítésre — a szöveged sosem hagyja el az oldalt. - Amikor az elemzés sikeres, az elemzett érték újrakibocsátásra kerül a
JSON.stringify(value)segítségével — behúzási argumentum nélkül —, ami a legrövidebb érvényes formáját adja ugyanannak az értéknek. - Mind az eredeti, mind a tömörített szöveg bájthossza kiszámításra kerül a
new TextEncoder().encode(...).byteLengthsegítségével — ugyanaz a UTF-8 bájtszám, amit egy HTTP szerver látna a vezetéken. - A kimenet a csak olvasható szövegmezőbe íródik, a mérőszám sáv jelenti a bájt különbségeket a megtakarítás százalékával, és a Letöltés gomb egy
.min.jsonfájlba csomagolja az eredményt, amit szállíthatsz.
Miért tömöríts JSON-t ezzel az eszközzel?
- Adatvédelem: minden elemzési, tömörítési és mérőszám lépés a böngésződben történik. A JSON soha nem éri el a szervereinket — nincs feltöltés, nincs telemetria, nincs fiók.
- Valódi bájtszámok: az eredeti méret, a tömörített méret és a megtakarítás a TextEncoder segítségével kerül kiszámításra, így látod a tényleges UTF-8 bájt különbségeket, amiket egy CDN vagy API gateway számlázni fog.
- Nulla adatvesztés: a tömörítés pusztán kozmetikai — minden érték ugyanarra a JSON fára elemződik, így biztonságos termelési adatokhoz, manifestekhez és beágyazott előre gyártott elemekhez.
- Gyors: a tiszta
JSON.parse+JSON.stringifyazonnal kezeli a tipikus vágólap méretű adatokat, külső könyvtárak betöltése nélkül.
Mik a JSON tömörítés gyakori alkalmazásai?
A jelentéktelen szóközök eltávolítása a JSON-ból a webfejlesztés, az adatmérnökség és a beágyazott rendszerek területén jelenik meg:
- API adat csökkentés: a kérés és válasz törzsek zsugorítása, mielőtt átlépnek egy mérőszám API gateway-en, egy fizetős kimenő forgalmi kapcsolaton vagy egy műholdkapcsolaton.
- Beágyazás HTML-be: egy JSON darab betöltése egy
data-*attribútumba vagy egy<script type="application/json">címkébe anélkül, hogy a szép nyomtatási szóközök kiszivárognának a renderelt oldalba. - Kisebb localStorage: a localStorage / IndexedDB kvóta használat csökkentése tömörített JSON írásával a szépen nyomtatott JSON helyett, ami különösen értékes a mobil böngészőkön szigorú forrásonkénti tárolási korlátokkal.
Hogy néz ki egy JSON tömörítési példa?
Egy 1.2 KB-os szépen nyomtatott konfigurációs fájl (körülbelül 1,225 bájt két szóköz behúzással) beillesztése és a Tömörítés gomb megnyomása jellemzően 0.4 KB alá zsugorítja — 66%-os megtakarítás — minden kulcs és érték pontosan megőrzésre kerül. A letölthető output.min.json fájl bájt szinten azonos azzal, amit egy HTTP szerver bocsátana ki Content-Type: application/json és formázó middleware nélkül.
Ez a böngészőmben fut?
Igen. A tömörítési csővezeték tiszta JSON.parse + JSON.stringify, ami a böngészőlapodon belül fut. Semmi sem töltődik fel, nem proxyzza a bemenetedet egy service worker, és az oldal nulla hálózati kérést tesz a tömörítési lépéshez. Az egyetlen kimenő forgalom a szabványos oldalbetöltési anyagok (CSS, betűtípusok, analitika) — a JSON-d soha nem éri el az Ultim8Soft-ot.
Miért tömörítsünk JSON-t?
A tömörített JSON pontosan ugyanarra az értékre elemződik, mint a szépen nyomtatott forrás, de kisebb a vezetéken és tárolásban. A kisebb adatok alacsonyabb CDN kimenő forgalmi számlákat, gyorsabb mobil letöltéseket, kevesebb memória nyomást a service workerekben és szorosabb illeszkedést jelentenek a fix méretű borítékokba, mint a JWT adatok, a beágyazott HTML data-* attribútumok és a localStorage kvóták. Nagy volumenű API-k esetén a bájt megtakarítás összeadódik — egy 30%-os csökkentés egy 1 GB/nap végponton nagyjából 9 GB-ot spórol havonta.
A tömörítés adatvesztéssel jár?
Nem. A JSON tömörítés csak a karakterlánc literálokon kívüli szóközöket távolítja el — szóközöket, tabokat és újsorokat, amiket a spec már eleve jelentéktelennek minősít. Minden kulcs, érték, szám, escape sorozat és karakterlánc karakter bájt szinten megőrzésre kerül. A kimenet egy olyan értékre elemződik, ami deepEqual a bemenettel. A kozmetikai behúzás az egyetlen dolog, ami eltűnik.
Mi a különbség a formázó és a tömörítő között?
A kísérő JSON Formázó a másik irányba megy: bővíti a szóközöket, hogy az emberek olvashassák a beágyazott struktúrákat. A Tömörítő visszaeltávolítja a szóközöket a szállításhoz és tároláshoz. A két eszköz inverz — egy JSON dokumentum körutaztatása a Formázó → Tömörítő révén ugyanazt a bájtkarakterláncot adja, amivel a tömörítőt kezdted, mert mindkettő az elemzett értéken működik, nem a kozmetikai jelölésen.
Ez a JSON tömörítő ugyanazt az elemzőt használja, amit a Node.js, Deno vagy böngésződ futásideje használ, és olyan kimenetet ad, ami bájt szinten azonos azzal, amit egy díszítetlen HTTP szerver bocsátana ki. Illessz be bármilyen JSON-t fent, másold ki a kimenetet, vagy töltsd le .min.json-ként.