JSON Biçimlendirici


Çıktı

Deneyin:

Veriniz tarayıcınızdan çıkmaz.

Konsola yazdırdığım sözlüğü doğrudan yapıştırabilir miyim?

Evet. Konsola düşen bir sözlük çoğu dilde geçerli JSON değildir: tırnaklar tek tırnak olabilir, sabitler büyük harfle başlayabilir, ayraç iki nokta yerine ok veya eşittir olabilir. Araç bunu yapıştırdığınız anda tanır, üstte hangi dil olduğunu yazar ve neyi neye çevirdiğini madde madde listeler. İçinde kesme işareti veya çift tırnak geçen metinler de doğru çevrilir.

Hangi diller destekleniyor?

On dil: Python, JavaScript, TypeScript, PHP, Ruby, Java, Kotlin, Go, Rust, Swift ve C#. Tanınan biçimler şunlar. Python: tek tırnak, True, False, None, demet, küme, bytes. JavaScript ve TypeScript: tırnaksız anahtar, undefined, ters tırnaklı metin, onaltılık sayı. PHP: array(...) ve kısa dizi söz dizimi, ok ayracı, büyük harfli TRUE, FALSE, NULL. Ruby: ok ayracı, :sembol anahtarlar, nil. Java ve Kotlin: map toString çıktısındaki tırnaksız anahtar ve eşittir ayracı, tırnaksız değerler, sayı sonekleri. Go: fmt ile basılan map[ad:Ali yas:30] çıktısı ve map literal. Rust: Some ve None sarmalayıcıları, adlandırılmış yapı çıktısı. Swift: köşeli parantezli sözlük ve nil. C#: indeksleyici başlatıcı.

Bir dilin sözlüğünü başka bir dile çevirebilir miyim?

Evet. Hedef kutusundan JSON, JavaScript, Python, PHP, Ruby, Java, Kotlin, Go, Rust, Swift veya C# seçin; çıktı o dilin söz dizimiyle üretilir. Kaynak kutusu varsayılan olarak Ham, yani girdiyi kendisi algılar; bir dil seçerseniz ve algılanan farklıysa uyarır ve algıladığı yapıya göre çevirir. Java, Kotlin ve Rust'ta sözlük değişmezi olmadığı için çıktı sırasıyla Map.ofEntries, mapOf ve serde_json json! makrosu biçiminde gelir; bunu üstteki notta ayrıca yazar.

Ağaç görünümü ne işe yarar?

Çıktının üstündeki Ham ve Ağaç düğmeleri görünümü değiştirir. Ağaç görünümünde her nesne ve dizi katlanabilir bir satır olur, yanında kaç öge taşıdığı yazar. İlk iki kat açık gelir, gerisi kapalıdır. Derin yapılarda hangi alanın nerede olduğunu aramaktan hızlıdır. Beş bin ögeden sonra ağaç kesilir, tamamı Ham görünümünde durur.

Swift dizisi ile Swift sözlüğünü nasıl ayırıyor?

Swift ikisini de köşeli parantezle yazar. Araç ilk ögeden sonra iki nokta gelip gelmediğine bakar: geliyorsa sözlük, gelmiyorsa dizi. ['a', 'b'] dizi kalır, ['a': 1] nesneye çevrilir. Boş sözlük olan [:] de tanınır.

Hangi dönüşümler yapılıyor?

Dile özgü sabitler true, false ve null olur. Demet, küme ve dizi yapıları diziye çevrilir. Ok (=>) ve eşittir (=) ayraçları iki noktaya çevrilir. Metin olmayan anahtarlar tırnaklanır, çünkü JSON anahtarları metin olmak zorundadır. Ruby sembolleri metin anahtara döner. Rust'ta Some(...) açılır, None null olur. Sayılardaki alt çizgi ayıraçları (1_000_000) ve L, f, m gibi sonekler kaldırılır. Kaçış dizileri JSON karşılığına çevrilir.

datetime, Decimal veya benzeri nesneler ne oluyor?

Bunların JSON karşılığı yoktur. datetime.datetime(2026, 9, 15, 2, 17) ifadesi olduğu gibi bir metin değerine alınır ve üstte 'JSON karşılığı olmayan nesne metin olarak korundu' uyarısı çıkar. Aynısı Decimal, UUID ve benzeri her yapıcı çağrısı için geçerlidir.

Küme (set) çevirisinde neye dikkat etmeliyim?

Kümelerin sırası yoktur. Aynı kümeyi iki kez yazdırdığınızda elemanlar farklı sırada çıkabilir. Araç kümeyi diziye çevirirken gördüğü sırayı korur, ama bu sıra anlamlı değildir ve uyarıda bunu ayrıca yazar. Çıktıdaki dizi sırasına güvenerek iş yapmayın.

PHP mi Ruby mi olduğunu ayırt edebiliyor mu?

İkisi de ok ayracı kullandığı için her zaman ayırt edilemez. array(...) yazıyorsa ya da TRUE, FALSE, NULL büyük harfliyse PHP der; :sembol anahtar veya nil varsa Ruby der. İkisine de dair bir işaret yoksa 'PHP veya Ruby' yazar. Çeviri her iki durumda da aynıdır, bu yüzden ayrımın çıktıya etkisi yoktur.

Büyük sayılarım bozulur mu?

Hayır. 9007199254740991 sınırının üstündeki tam sayılar aynen kalır ve üstte kaç sayının bu sınırı aştığı yazar. 2.370 gibi sondaki sıfırlar ve 2.3e+500 gibi üs gösterimi de korunur.

Verilerim sunucuya gidiyor mu?

Hayır. Ayrıştırma da biçimlendirme de tarayıcınızın içinde çalışır; sayfa açıldıktan sonra araç sunucuya istek göndermez. Dosya açtığınızda da dosya yüklenmez, yalnızca tarayıcınız tarafından okunur.

Yorum satırı veya fazladan virgül içeren JSON'u kabul ediyor musunuz?

Evet. Çift eğik çizgili, blok ve diyez işaretli yorumlar temizlenir; nesne veya dizi sonundaki fazladan virgül düşürülür; dosya başındaki görünmez BOM karakteri atılır. Hepsi üstteki özet listesinde tek tek yazar. BOM, Excel'den ve Windows araçlarından çıkan dosyaların çoğunda bulunur ve ekranda görünmez.

Aynı anahtar iki kez geçerse ne oluyor?

Sonuncusu kalır, ilki düşer. Üstteki özette 'Yinelenen anahtar bulundu, sonuncusu kaldı' satırı ve kaç tane bulunduğu çıkar. Birleştirilmiş konfigürasyon dosyalarında sık görülür ve fark edilmediğinde yanlış değerle çalışırsınız.

Anahtarları alfabetik sıralamalı mıyım?

İki dosyayı karşılaştıracaksanız evet, sıralama farkı gürültüyü azaltır. Ama sıranın anlam taşıdığı yerlerde kullanmayın: sırayla çalışan işlem adımları, öncelik listeleri veya insanın okuması için düzenlenmiş konfigürasyonlar sıralandığında mantık bozulmasa da okunurluk gider. Seçenek varsayılan olarak kapalıdır.

Ne kadar büyük veri yapıştırabilirim?

Sınır 8 MB. Bunun üstünde araç işlemeyi reddeder ve size söyler. Daha büyük dosyalarda tarayıcı sekmesi kilitlendiği için komut satırı araçları uygundur.

Hata mesajı bana ne söylüyor?

Satır numarası, sütun numarası, o satırın kendisi ve altında sorunlu karakteri gösteren bir işaretçi.