JSON Formatlama En İyi Uygulamaları: Okunabilir, Geçerli ve Verimli
Hızlı Yanıt
İnsan-okunabilir JSON için 2-space indent, trailing comma yok, double-quoted key ve tutarlı key sıralaması kullanın. Production transport için minify, development için pretty-print yapın. İkisi arasında anında geçiş için ücretsiz JSON Formatter kullanın.
giriiş
JSON formatlama seçimleri okunabilirlik, dosya boyutu ve debug hızını etkiler. JSON syntax RFC 8259 tarafından kesin olarak tanımlanmış olsa da, indent, key sıralama ve whitespace'i nasıl işlediğiniz bir convention meselesidir. Bu kılavuz, JSON'unuzun ekipler arasında tutarlı, debug edilmesi kolay ve network üzerinden verimli olması için yaygın best practice'leri açıklar.
Adım adım
-
Bir girinti genişliği seçin
2 boşluk en yaygın kuraldır (Prettier, ESLint, Google JSON Stil Kılavuzu). Derinlemesine yuvalanmış yapılandırmalar için 4 boşluk kabul edilebilir. Oluşturma düzenleyiciler arasında değişiklik gösterdiğinden sekmeler önerilmez. Birini seçin ve proje genelinde uygulayın.
-
Anahtarları tutarlı bir şekilde sipariş edin
Anahtarları deterministik çıktı için alfabetik olarak sıralayın (önbelleğe alma ve farklar için kullanışlıdır) veya etki alanı anlamına göre gruplandırın (önce kimlik, sonra nitelikler, sonra ilişkiler). Rastgele anahtar sıralamasından kaçının; farkları gürültülü hale getirir ve anlık görüntü testlerini bozar.
-
Üretim taşıması için küçültme
Küçültülmüş JSON, gerekli olmayan tüm boşlukları kaldırarak yük boyutunu %10—0 azaltır. Üretimde APIs'den küçültülmüş JSON yayınlayın ve yalnızca yerel geliştirme ve hata ayıklama için güzel yazdırılmış JSON saklayın.
-
Göndermeden önce doğrula
JSON dosyasını bir API dosyasına göndermeden veya bir yapılandırma dosyasına yazmadan önce daima bir doğrulayıcı aracılığıyla çalıştırın. Sondaki tek bir virgül veya tırnaksız anahtar, JSON.parse() işlevinin tüketiciyi atmasına ve bozmasına neden olur.
-
Modları değiştirmek için biçimlendirici kullanın
Okumak için güzelleştirmek veya aktarım için küçültmek için JSON dosyanızı JSON Biçimlendiriciye yapıştırın. Araç, sözdizimini doğrular ve herhangi bir hatanın tam konumunu raporlayarak hata ayıklama süresinden tasarruf sağlar.
Örnekler
Oldukça baskılı (2 boşluklu girinti)
Giriş: {"id":1,"name":"Alice","active":true}
Çıkış: {
"id": 1,
"name": "Alice",
"active": true
}
Üretim için küçültülmüş
Giriş: {
"id": 1,
"name": "Alice"
}
Çıkış: {"id":1,"name":"Alice"}
Alfabetik olarak sıralanmış tuşlar
Giriş: {"zebra":1,"apple":2,"mango":3}
Çıkış: {"apple":2,"mango":3,"zebra":1}
Yaygın Sorunlar
- Sondaki virgüller: {"a":1,} geçersiz JSON. Çoğu formatlayıcı bunları çıkarır, ancak JSON.parse() gibi katı ayrıştırıcılar girişi reddeder.
- Tek tırnaklar ve tırnaksız anahtarlar: {'a':1} ve {a:1} geçerli JavaScript'tir ancak geçersiz JSON. Anahtarlar ve dize değerleri için her zaman çift tırnak kullanın.
- JSON içindeki yorumlar: JSON standardı // veya /* */ yorumlarına izin vermez. Satır içi belgelere ihtiyacınız varsa JSONC, JSON5 veya ayrı bir şema dosyası kullanın.
- Karışık girinti: sekmeleri ve boşlukları karıştırmak, farklı araçları bozar ve "tutarsız girinti" tüy bırakma hatalarına neden olabilir. İşlemden önce bir formatlayıcıyla normalleştirin.
İpuçları
- Düzenleyicinizi, kayıt sırasında JSON biçimini 2 boşluklu girintiyle yapılandıracak şekilde yapılandırın; bu, kod incelemesinde stil tartışmalarını önler.
- API yanıtları için Content-Type'ı ayarlayın: application/json; charset=utf-8 ve maksimum verimlilik için gzip/Brotli sıkıştırmasıyla küçültülmüş JSON sunun.
- JSON karma işlemi yapıldığında veya anlık görüntü testlerinde karşılaştırıldığında deterministik anahtar sıralamasını (ör. alfabetik) kullanın; rastgele sıralama, hatalı pozitif hatalara neden olur.
- Büyük bir JSON verisinde hata ayıklarken, önce onu güzel bir şekilde yazdırın, ardından gözle taramak yerine ilgili alt ağacı çıkarmak için regex veya jq kullanın.