YAML'dan JSON'a Dönüştürücü

YAML'ı JSON'a, JSON'ı YAML'a dönüştürün; sözdizimi hatalarının tam satır ve sütununu görün.

Nasıl kullanılır

  1. YAML veya JSON yapıştırın — araç hangisi olduğunu kendisi anlar, ya da yönü siz seçin.
  2. "Dönüştür"e tıklayın. Sözdizimi bozuksa mesajdaki satır ve sütunu ve hatalı karakterin altındaki işareti okuyun.
  3. Sonucu kopyalayın ya da converted.json veya converted.yaml olarak indirin. Hiçbir şey yüklenmez.

Bu araç hakkında

YAML ve JSON aynı şeyleri tarif eder — eşlemeler, listeler, metinler, sayılar, boolean değerler ve null — ama öncelikleri birbirinin tersidir. JSON, makinelerin sevdiği ama insanların yanlış yazdığı süslü parantezler ve tırnaklar kullanır. YAML ise girinti ve neredeyse hiç noktalama kullanmaz; bu da başıboş bir boşluk belgenin biçimini değiştirene kadar insanların hoşuna gider. İkisi arasında dönüştürmek rutin bir iştir: bir Kubernetes manifestini ya da bir GitHub Actions iş akışını, bir betiğin işleyebilmesi için JSON olarak okumak; ya da bir API yanıtını yapılandırma dosyası için YAML'a geri çevirmek. Bu araç iki yönde de çalışır ve hangisini yapıştırdığınızı kendisi algılar.

Dönüştürme işin kolay yarısıdır; bu aracın asıl emek harcadığı yer, YAML bozuk olduğunda ne olduğudur. Sözdizimi hatası, bir editörün saydığı gibi sayılan satır ve sütun olarak bildirilir; yanına çevredeki satırlardan bir kesit ve ayrıştırıcıyı durduran karakterin tam altına bir işaret konur. Konum her zaman beklediğiniz yerde olmaz. Girinti için kullanılan bir sekme, tam sekmenin bulunduğu yerde reddedilir ve kesitte bir ok olarak yazdırılır; böylece göremediğiniz şeyi görürsünüz. Kapanmamış bir tırnak, açılış tırnağında değil, dosyanın sonunda bildirilir; çünkü ayrıştırıcı kapanışı ararken metnin orada sonu gelmiştir. Tekrar eden bir anahtar ikinci geçtiği yerde işaretlenir ve burada uyarı değil, hatadır. JSON hataları da aynı muameleyi görür: tarayıcılar bunları farklı ifade eder ve bazıları yalnızca karakter konumunu bildirir, bu yüzden satır ve sütun burada hesaplanır ve her yerde aynı çıkar.

YAML, JSON'ın ifade edemediği şeyleri ifade edebilir ve bunların her biri verinizi sessizce değiştirmek yerine açıkça bildirilir. Çapalar (anchors) ve takma adlar (aliases) genişletilir; yani bir takma ad, çapalanmış değerin tam bir kopyası hâline gelir ve bu size söylenir. Merge key'ler ise genişletilmez: ayrıştırıcı, bunları çözmeyen JSON şeması üzerinde çalışır; bu yüzden bir << satırı düz bir anahtar olarak kalır ve o alanları elle birleştirmeniz için bir uyarı verilir. --- ile ayrılmış birkaç belge içeren bir dosya, her belge bir öğe olacak şekilde bir JSON dizisine dönüşür. .inf ve .nan değerleri null olarak çıkar, çok büyük tam sayılar ise son basamaklarını yitirir; ikisi de işaretlenir. Bu şema aynı zamanda bir güvenlik tercihidir: !!js/function gibi etiketler örneklenmek yerine bilinmeyen olarak reddedilir. Ve bunların hiçbiri bir yere gitmez — her şey sizin cihazınızda çalışır.

Sık sorulan sorular

YAML veya JSON'ım tarayıcımdan çıkıyor mu?

Hayır. Metin, kendi cihazınızda JavaScript tarafından ayrıştırılır ve dönüştürülür — hiçbir yere bir şey gönderilmez, saklanmaz veya kaydedilmez. Bu burada önemlidir: bir Kubernetes manifesti sunucu adlarını, portları, bucket adlarını ve servis hesaplarını taşır.

Hatadaki satır ve sütun tam olarak ne anlama geliyor?

Ayrıştırıcının pes ettiği yeri gösterirler; tıpkı editörünüzdeki gibi 1'den sayılır ve o karakterin altında bir işaret bulunur. Bir durum insanları şaşırtır: kapanmamış bir tırnak dosyanın sonunda bildirilir, bu yüzden en son açtığınız tırnağı geriye doğru arayın.

Çapalar (anchors) ve takma adlar (aliases) destekleniyor mu?

Evet. Her takma ad, JSON'da çapalanmış değerin tam bir kopyası hâline gelir ve araç bunu size söyler. İstisna merge key'lerdir: çözülmezler, << düz bir anahtar olarak kalır ve sessizce yanlış bir sonuç yerine açık bir uyarı alırsınız.

--- ile ayrılmış birkaç belge içeren bir dosyayı dönüştürebilir mi?

Evet. JSON'da tek bir dosyada birden çok belge kavramı yoktur; bu yüzden her YAML belgesi sırasıyla bir JSON dizisinin bir öğesi olur ve kaç belge bulunduğunu bir bildirim söyler.

"yes" neden true yerine metin olarak çıktı?

Çünkü YAML 1.2 yalnızca true ve false değerlerini boolean sayar; yes, no, on ve off metin olarak kalır. Daha eski 1.1 ayrıştırıcıları bunları dönüştürürdü — NO ülke kodunu false'a çeviren kuralın aynısı. Bir değerin metin kalması gerekiyorsa onu tırnak içine alın.

İlgili araçlar

Uzun bağlantılar mı? Ücretsiz kısaltın

Vai.la, herhangi bir URL'yi tıklama istatistikleri, QR Code ve kendi biolink'inizle birlikte kısa bir bağlantıya dönüştürür.

Vai.la, araçların nasıl kullanıldığından veya sonuçlarına dayanarak alınan kararlardan sorumlu değildir.