§

JSON beillesztése

§

Tömörített kimenet

text
§

Megtakarítás %

  • Eredeti méret
  • Tömörített méret
  • Megtakarítás
  • Megtakarítás %

A JSON legkisebb érvényes formájára vágása mindenhol megtérül, ahol a bájtokért számláznak: az AWS API Gateway a kérés és válasz adatméretet a 10 MB-os korlátja ellenében számítja, a CloudFront és a Cloudflare gigabájtonként számláz a kimenő forgalomért, és az amerikai szövetségi CKAN adatportálok a data.gov-on több gigabájtos JSON exportokat tesznek közzé, amiket mérnökök töltenek le laptopokra a terepen. A brit Open Banking PSD2 végpontok JWS-aláírt JSON-t cserélnek az aggregátorok és a high-street bankok között, ahol minden kilobájt auditált TLS-tűzésű csatornákon keresztül terjed. Az egészségügyi HL7 FHIR erőforrások, a Tesla és Ford csatlakoztatott járműveinek IoT telemetriája, valamint a CDN-nel ellátott SaaS irányítópultok mind valódi költség- és késleltetési nyereséget látnak, amikor a JSON tömörítésre kerül, mielőtt elhagyja a böngészőt.

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:

  1. 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.
  2. A böngésző elemzi a JSON.parse segítségével. Ha a bemenet nem érvényes JSON, az elemző egy SyntaxError-t dob, ami elkapásra kerül és szó szerint megjelenítésre — a szöveged sosem hagyja el az oldalt.
  3. 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.
  4. Mind az eredeti, mind a tömörített szöveg bájthossza kiszámításra kerül a new TextEncoder().encode(...).byteLength segítségével — ugyanaz a UTF-8 bájtszám, amit egy HTTP szerver látna a vezetéken.
  5. 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.json fá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.stringify azonnal 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.