§

JSON-ni joylashtiring

§

Kichraytirilgan natija

text
§

Tejaldi %

  • Asl o'lcham
  • Kichraytirilgan o'lcham
  • Tejaldi
  • Tejaldi %

O‘zbekistondagi backend va integratsion jamoalar JSON minifikatsiyasini har kuni amalda qo‘llaydi: Click, Payme va Apelsin fintech API’lari, Uztelecom va Beeline Uzbekistan-ning 4G/5G IoT qurilmalari, hamda data.gov.uz orqali ochiq ma’lumotlarni qaytaruvchi e-Government API’lari yuzlab kilobayt yuk tashiydi. Asia Bank va Davlat Hizmatlari Agentligi’ning ichki tizimlari JSON Web Token va sub-claim’larni kompakt formatda almashtiradi. SMS API operatorlari, jumladan Beeline, payload o‘lchamiga juda sezgir bo‘lgani uchun bo‘sh joylarni olib tashlash to‘g‘ridan-to‘g‘ri tarif xarajatini kamaytiradi. Bu vosita STIR va shaxsiy ma’lumotlarni brauzerda ushlab qoladi, hech narsa serverga yuborilmaydi.

JSON kichraytirish nima?

JSON (JavaScript Object Notation) — RFC 8259 va ECMA-404 tomonidan belgilangan, matnga asoslangan yengil ma'lumot almashish formati. Kichraytirish satr literali tashqarisidagi har bir bo'shliq, tabulyatsiya va satr boshini olib tashlaydi — qiymatlar bayt-baytga saqlanadi, faqat kosmetik bo'sh joy yo'qoladi. Natija kirish bilan aynan bir xil qiymatga tahlil qilinadi.

JSON kichraytirish qanday ishlaydi?

Kiritilgan ma'lumotlar to'liq sizning brauzeringizda ichki JSON.parse va JSON.stringify funksiyalari yordamida qayta ishlanadi. Asosiy bosqichlar:

  1. Kirish matn maydonidan aynan o'qiladi — siz joylagan har bir bayt lokal xotirada qoladi.
  2. Brauzer uni JSON.parse bilan tahlil qiladi. Agar kirish yaroqli JSON bo'lmasa, tahlilchi SyntaxError ni tashlaydi va bu xato xuddi o'sha holda ko'rsatiladi — matningiz sahifani tark etmaydi.
  3. Tahlil muvaffaqiyatli bo'lganda, tahlil qilingan qiymat JSON.stringify(value) bilan — chekinish argumentisiz — qayta yoziladi va bu xuddi shu qiymatning eng qisqa yaroqli ko'rinishini beradi.
  4. Asl va kichraytirilgan matnning bayt uzunligi new TextEncoder().encode(...).byteLength bilan hisoblanadi — bu HTTP server kabelda ko'radigan o'sha UTF-8 bayt sonidir.
  5. Natija faqat o'qish uchun matn maydoniga yoziladi, metrik paneli bayt farqi va tejov foizini ko'rsatadi, Yuklab olish tugmasi esa natijani jo'natish mumkin bo'lgan .min.json fayliga joylaydi.

Nima uchun JSON-ni shu vosita bilan kichraytirish kerak?

  • Maxfiylik: har bir tahlil, kichraytirish va metrik hisoblash brauzeringizda amalga oshiriladi. JSON serverlarimizga hech qachon yetib bormaydi — yuklash, telemetriya va hisob qaydnomasi yo'q.
  • Haqiqiy bayt raqamlari: asl o'lcham, kichraytirilgan o'lcham va tejov TextEncoder bilan hisoblanadi, shuning uchun siz CDN yoki API gateway sizga hisob qiladigan haqiqiy UTF-8 bayt farqini ko'rasiz.
  • Ma'lumot yo'qotilmaydi: kichraytirish faqat kosmetikdir — har bir qiymat o'sha JSON daraxtiga tahlil qilinadi, shuning uchun u ishlab chiqarish payload'lari, manifestlar va o'rnatilgan fixturalar uchun xavfsiz.
  • Tez: sof JSON.parse + JSON.stringify tipik buferdagi payload'larni darhol qayta ishlaydi, hech qanday tashqi kutubxonaga muhtoj emas.

JSON kichraytirishning keng tarqalgan qo‘llanilishlari qanday?

JSON-dan ahamiyatsiz bo'sh joylarni olib tashlash veb-dasturlash, ma'lumotlar muhandisligi va o'rnatilgan tizimlarda har joyda uchraydi:

  • API yuklarini qisqartirish: so'rov va javob tanalarini hisob-kitobli API gateway, pulli egress kanali yoki sun'iy yo'ldosh aloqasidan o'tishdan oldin kichraytiring.
  • HTML-ga joylashtirish: data-* atributi yoki <script type="application/json"> tegiga JSON-blob'ni pretty-printer bo'sh joylarini render qilingan sahifaga sizdirmasdan tiqib qo'ying.
  • Kichikroq localStorage: chiroyli chiqarilgan JSON o'rniga kichraytirilgan JSON yozish bilan localStorage / IndexedDB kvotasini kamaytiring; bu origin bo'yicha qattiq saqlash chegaralariga ega mobil brauzerlarda ayniqsa qadrli.

JSON kichraytirish misoli qanday ko‘rinadi?

Ikki bo'shliqli chekinishli 1,2 KB chiroyli chiqarilgan konfiguratsiya faylini (taxminan 1225 bayt) joylashtirib Kichraytirish tugmasini bosish odatda uni 0,4 KB dan ham kichikroq — 66% tejov — holatga keltiradi va har bir kalit va qiymat aynan saqlanadi. Yuklab olinadigan output.min.json fayli HTTP server tomonidan Content-Type: application/json bilan formatlovchi qatlamsiz beriladigan natija bilan bayt-baytga bir xil.

Bu mening brauzerimda ishlaydimi?

Ha. Kichraytirish quvuri brauzer tabida ishlaydigan sof JSON.parse + JSON.stringify dir. Hech narsa yuklanmaydi, hech qanday service worker kiritmangizni proxy qilmaydi va sahifa kichraytirish bosqichi uchun nol tarmoq so'rovi qiladi. Yagona chiquvchi trafik standart sahifa-yuklash resurslari (CSS, shriftlar, analitika) — JSON Ultim8Soft ga hech qachon yetib bormaydi.

JSON nima uchun kichraytiriladi?

Kichraytirilgan JSON chiroyli chiqarilgan manba bilan aynan bir xil qiymatga tahlil qilinadi, lekin kabelda va saqlovda kichikroq. Kichikroq payload'lar past CDN egress hisoblarini, tezroq mobil yuklashni, service worker'lar ichida kamroq xotira yukini va JWT payload'lari, o'rnatilgan HTML data-* atributlari va localStorage kvotalari kabi qattiq o'lchamli konvertlarga zichroq joylanishni anglatadi. Yuqori hajmli API-larda bayt tejov yig'iladi — kuniga 1 GB endpoint'da 30% kamayish oyiga taxminan 9 GB tejaydi.

Kichraytirish ma'lumot yo'qotadimi?

Yo'q. JSON kichraytirish faqat satr literallari tashqarisidagi bo'sh joylarni olib tashlaydi — spetsifikatsiya allaqachon ahamiyatsiz deb tasniflagan bo'shliqlar, tabulyatsiyalar va satr boshlari. Har bir kalit, qiymat, raqam, escape ketma-ketligi va satr belgisi bayt-baytga saqlanadi. Natija kirishga nisbatan deepEqual bo'lgan qiymatga tahlil qilinadi. Yo'qoladigan yagona narsa — kosmetik chekinish.

Formatlovchi va kichraytiruvchi o'rtasidagi farq nima?

Hamroh JSON Formatlovchi teskari yo'nalishda boradi: u odamlar ichma-ich tuzilmalarni o'qiy olishi uchun bo'sh joylarni kengaytiradi. Kichraytiruvchi esa bu bo'sh joylarni tashish va saqlash uchun qaytarib olib tashlaydi. Bu ikki vosita teskari — JSON hujjatni Formatlovchi → Kichraytiruvchi orqali aylantirish, kichraytiruvchini boshlagan paytdagi aynan o'sha bayt-satrni beradi, chunki ikkalasi ham kosmetik belgilash ustida emas, tahlil qilingan qiymat ustida ishlaydi.

Bu JSON kichraytiruvchisi sizning Node.js, Deno yoki brauzer ish vaqtingiz ishlatadigan o'sha tahlilchini ishlatadi va oddiy HTTP server bera oladigan natija bilan bayt-baytga bir xil chiqaradi. Yuqoriga istalgan JSON-ni joylashtiring, natijani nusxalang yoki .min.json sifatida yuklab oling.