Dosya boyutunu azaltmak için JSON'dan boşlukları kaldırın. API yükleri, yapılandırma dosyaları ve log girişleri için tek tıklamayla küçültme.
Editör yükleniyor...
Editör yükleniyor...
Yukarıdaki girdiyi küçültmek, belirteçler arasındaki tüm boşlukları kaldırır:
{"name":"DevBento","version":"1.0.0","description":"Developer tools suite","features":["JSON Formatter","Base64 Encoder","UUID Generator","Regex Tester"],"config":{"theme":"dark","indent":2,"autoSave":true}}
Güzel biçimlendirilmiş sürüm 233 bayttır. Küçültülmüş sürüm 189 bayttır. Bu, yalnızca boşlukları kaldırarak yüzde 19’luk bir azalmadır.
Bir JSON küçültücü tam olarak iki kategori boşluk kaldırır:
Bu, {"message": "hello world"} ifadesinin {"message":"hello world"} şeklinde küçültüldüğü anlamına gelir. String içindeki boşluklar veridir ve korunur. İki nokta üst üsteden önceki boşluk sözdizimseldir ve kaldırılır.
Küçültme asla anahtar adlarını, string değerlerini, sayıları veya belgenin yapısını değiştirmez. Bir belgeyi küçültüp sonra güzel biçimlendirirseniz, taze girinti ile aynı veriyi geri alırsınız.
| Orijinal boyut | Güzel biçimlendirilmiş | Küçültülmüş | Küçültülmüş + gzip |
|---|---|---|---|
| Küçük yapılandırma (1 KB) | 1.024 B | ~820 B | ~380 B |
| Orta API yanıtı (50 KB) | 51.200 B | ~41.000 B | ~8.500 B |
| Büyük veri kümesi (1 MB) | 1.048.576 B | ~840.000 B | ~95.000 B |
Gzip baskındır. Gzip’ten önce küçültme, sıkıştırmanın zaten elde ettiğinin üzerine yalnızca yüzde birkaç kazandırır. Ancak sıkıştırılmamış statik varlıklarda her bayt önemlidir.
Küçültme, belirli bir dizi durumda anlamlı tasarruf sağlar:
Çeviri dosyaları, GeoJSON, gömülü yapılandırma ve paketlenmiş veri dosyaları genellikle CDN’lerden sunulur veya doğrudan derleme çıktısına gömülür. Sıkıştırma her zaman uygulanmaz veya tutarsız olabilir. Dağıtımdan önce bunları küçültmek, kullanıcılarınızın indirdiği baytları azaltır.
Log girişleri ve telemetri olayları genellikle günde milyonlarca kez diske yazılır veya kablo üzerinden gönderilir. Bu ölçekte küçültülmüş JSON girişleri depolama maliyetlerini ve ağ yükünü azaltır. Tek bir log girişi 100 bayt küçülebilir. Günde 100 milyon girişte bu, günde 10 GB’dir.
Başlangıç sayfa durumu olarak bir <script> etiketine JSON gömüyorsanız (sunucu tarafından işlenen React uygulamaları için yaygın bir desen), JSON HTML yükünün bir parçasıdır. Küçültmek, tarayıcı herhangi bir şeyi ayrıştırmadan önce başlangıç sayfa boyutunu azaltır.
API sunucunuz zaten Content-Encoding: gzip veya Content-Encoding: br gönderiyorsa, küçültme ihmal edilebilir değer katar. Bunu yanıt başlıklarınızda doğrulayın:
curl -sI -H "Accept-Encoding: gzip" https://api.example.com/data | grep -i content-encoding
content-encoding: gzip görüyorsanız, API’niz zaten sıkıştırma yapıyordur. Bunun üzerine küçültme, geliştirme sırasında okunabilirlik maliyetine değmez.
jq ile -c (compact) bayrağı küçültülmüş JSON çıktısı verir:
jq -c . file.json
Bir string’i satır içi küçültme:
echo '{"name": "Alice", "age": 30}' | jq -c .
# {"name":"Alice","age":30}
Python’un json modülü:
python3 -c "import json,sys; print(json.dumps(json.load(sys.stdin), separators=(',', ':')))" < file.json
separators=(',', ':') argümanı, virgül ve iki nokta üst üsteden sonraki varsayılan boşlukları kaldırır. Bu olmadan Python’un çıktısı her sınırlayıcıdan sonra boşluklar içerir.
Node.js:
node -e "const fs=require('fs'); console.log(JSON.stringify(JSON.parse(fs.readFileSync('/dev/stdin','utf8'))))" < file.json
Çok sayıda dosyayı küçültmesi gereken betikler için jq -c . en hızlı ve en okunabilir seçenektir.
Nothing you paste leaves this tab. Every tool runs entirely in your browser — no upload, no server, no account.