JSON5'ten JSON'a Çevirme ve Doğrulama
Yorumlu, tek tırnaklı ya da sonda virgüllü JSON5 metnini doğrulayıp katı JSON'a çevirin
Verileriniz sizde kalır. Dönüşüm tarayıcının içinde yapılır, hiçbir şey sunucuya gitmez.
Bu araç işinizi gördü mü?
Teşekkürler, geri bildiriminiz alındı.
Nasıl çalışır?
tsconfig.json, VS Code'un settings.json dosyası ya da bir Babel ayarı çoğu zaman yorum satırı, tek tırnak ve son öğeden sonra virgül içerir. Bu dosyalar kendi programında çalışır ama katı JSON bekleyen bir araca, bir API'ye ya da JSON.parse'a verildiğinde "Unexpected token" hatasıyla reddedilir. Metni sol panele yapıştırın; araç onu JSON5 kurallarıyla okur ve sağ panelde katı JSON olarak yazar: tırnaksız anahtarlar (target:) çift tırnak alır, 'ES2020' gibi tek tırnaklı dizeler çift tırnağa geçer, sondaki virgüller silinir, 0x10 gibi onaltılık sayılar 16 olur ve // ile /* */ yorumları atılır. Sonuç satırı çıktının bayt boyutunu ve kaç yorumun atıldığını söyler. Metin JSON5 olarak da geçersizse, örneğin bir tırnak kapanmamışsa, çeviri yapılmaz; hatanın satır ve sütunu gösterilir. JSON'da Infinity ve NaN diye bir değer olmadığı için bunlar null yazılır ve sonuç satırında ayrıca uyarılır.
Bu araç json5 to json, json5 validator, json5 formatter, yorumlu json, jsonc to json aramalarıyla da biliniyor.
JSON5 nedir?
JSON5, JSON'un insan eliyle yazmayı kolaylaştıran bir uzantısıdır ve JavaScript'in nesne yazımına dayanır. Katı JSON'dan farklı olarak // ve /* */ yorumlarına, tek tırnaklı dizelere, tırnaksız anahtarlara, son öğeden sonra virgüle, 0x ile başlayan onaltılık sayılara ve Infinity, NaN değerlerine izin verir. Babel ve bazı derleme araçları ayar dosyası olarak JSON5 okur; ama tarayıcıların JSON.parse fonksiyonu okuyamaz.
Katı JSON nedir?
Katı JSON, RFC 8259 standardına tam uyan JSON'dur: anahtarlar ve dizeler yalnız çift tırnakla yazılır, yorum yoktur, son öğeden sonra virgül konmaz, sayılar onluk tabandadır. Her programlama dilinin JSON kütüphanesi ve her API bu biçimi okur. Bir ayar dosyasını başka bir programa vermeden önce katı JSON'a çevirmek, "Unexpected token" türü hataların önüne geçer.
JSON5 ile JSON arasındaki fark nedir?
JSON veri alışverişi için tasarlanmış katı bir biçimdir: her anahtar çift tırnaklı, yorum yok, sonda virgül yok. JSON5 aynı veri modelini korur ama yazımı gevşetir: yorum, tek tırnak, tırnaksız anahtar, sondaki virgül ve onaltılık sayı serbesttir. Her JSON belgesi geçerli JSON5'tir; tersi doğru değildir. Bu yüzden JSON5 insan tarafından düzenlenen ayar dosyalarında, JSON ise programlar arası veri taşımada kullanılır.
Yorumlar neden çıktıda yok?
Katı JSON'da yorum yazmak mümkün değildir; standart bunu bilerek dışarıda bırakmıştır. Bu yüzden JSON5'ten JSON'a çevirirken // ve /* */ ile yazılmış açıklamalar zorunlu olarak kaybolur. Araç kaç yorum attığını sonuç satırında söyler ki bilginin kaybolduğunu fark edesiniz.
Dosyayı ileride elle düzenlemeye devam edecekseniz orijinal JSON5 dosyasını saklayın ve JSON çıktısını yalnız katı JSON isteyen yere (bir API isteği, bir veritabanı alanı, JSON.parse kullanan bir betik) verin. Yorumların yerinde kalmasını istiyorsanız YAML iyi bir seçenektir: hem yorum taşır hem de JSON ile aynı veriyi tutar.
JSON5 ne zaman işe yarar, JSON ne zaman şarttır?
JSON5 ve yorumlu JSON (JSONC) insanların elle düzenlediği ayar dosyaları içindir: açıklama yazabilir, son öğeden sonra virgül bırakıp satır ekleyip çıkarabilirsiniz. TypeScript, VS Code ve Babel bu gevşek biçimi kendi dosyalarında kabul eder.
Programlar arasında veri gönderiliyorsa ise katı JSON şarttır: tarayıcının JSON.parse fonksiyonu, REST API'leri ve çoğu dil kütüphanesi yorumu ya da tek tırnağı hata sayar. Bu sayfa ilk dünyadan ikincisine geçişi yapar; yalnız girinti düzeltmek istediğiniz katı JSON için JSON biçimlendirme aracı daha uygundur.
- tsconfig, VS Code, Babel ayar dosyası → JSON5 / JSONC olarak kalabilir
- API isteği, JSON.parse, veritabanı → katı JSON (bu sayfanın çıktısı)
- Zaten katı JSON, yalnız girinti → JSON biçimlendirme aracı
Sık sorulanlar
Yorumlu JSON'u normal JSON'a nasıl çeviririm?
Metni bu sayfadaki sol panele yapıştırın. // ve /* */ yorumları atılır, tek tırnaklar çift tırnağa çevrilir, sondaki virgüller silinir ve sağ panelde katı JSON belirir. Kopyalayabilir ya da .json dosyası olarak indirebilirsiniz.
JSON5 ile JSONC aynı şey mi?
Yakın ama aynı değil. JSONC (VS Code'un kullandığı) yalnız yorumlara ve bazı durumlarda sondaki virgüle izin verir. JSON5 daha geniştir: tek tırnak, tırnaksız anahtar, onaltılık sayı ve çok satırlı dize de kabul eder. Her JSONC dosyası geçerli JSON5 olduğu için bu araç ikisini de okur.
Infinity ya da NaN değerlerime ne olur?
JSON bu değerleri tanımaz; JSON.stringify onları null yazar. Araç bu durumu sessiz geçmez, sonuç satırında kaç değerin null olduğunu söyler. Bu değerleri korumanız gerekiyorsa onları metin olarak ("Infinity") saklamanız gerekir.
Verim bir sunucuya gönderiliyor mu?
Hayır. Çeviri tamamen tarayıcınızda yapılır; yapıştırdığınız ayar dosyası ya da veri bu sayfadan çıkmaz ve hiçbir yere kaydedilmez.