Nasıl kullanılır?
- Dönüştürme yönünü seçin: JSON → YAML veya YAML → JSON.
- Verilerinizi yapıştırın veya “Bir örnek dene”ye basın. Siz yazdıkça sonuç güncellenir.
- Çıktı için 2 veya 4 boşluk girintisi seçin.
- Sonucu kopyalayın veya indirin. “Çıktıyı girdi olarak kullan” seçeneği, geri dönüştürmek için yönü değiştirir.
Nasıl çalışır?
Dönüştürme işlemi, YAML 1.2 belirtimini uygulayan açık kaynaklı yaml kitaplığının 2. sürümünü kullanır. YAML 1.2, pratikte JSON'un bir üst kümesidir; bu nedenle her JSON belgesi veri kaybı olmadan YAML'a dönüştürülür. Yalnızca eşlemeler, listeler, dizeler, sayılar, boole değerleri ve null kullanan YAML ise aynı JSON'a dönüştürülür.
YAML oluştururken araç, başka bir değer sanılabilecek dizeleri tırnak içine alır. PyYAML gibi eski YAML 1.1 ayrıştırıcıları ve birçok CI aracı yes, no, on ve off değerlerini boole; 0777'yi sekizlik sayı; 2024-01-31'i ise tarih olarak okur. Bu nedenle bu değerler sırasıyla "yes", "0777" ve "2024-01-31" şeklinde yazılır. Uzun dizeler birden çok satıra bölünmez. JSON'da yorum olmadığı için yorumlar aktarılamaz.
YAML okunurken &name bağlantıları ve *name takma adları, << birleştirme anahtarı da dâhil olmak üzere genişletilir. --- ile ayrılmış birden fazla belge içeren dosyalar JSON dizisine dönüştürülür. Tarayıcınızı korumak için takma ad genişletme sınırlandırılmıştır; böylece “milyar kahkaha” belgeleri engellenir. JSON'da karşılığı olmayan YAML değerleri olabildiğince yakın biçimde dönüştürülür: .inf ve .nan null olur, zaman damgaları ise dize olarak kalır. Sözdizimi hataları satır ve sütun numaralarıyla bildirilir.
Örnekler
Kubernetes bildirimi
Bir betiğin JSON olarak yazdığı Deployment, kubectl kullanıcılarının beklediği YAML düzenine dönüştürülür. containers altındaki listeler - name: web biçiminde yazılır. "no" gibi değerler dize olarak kalmaları için tırnak içinde tutulur.
Bağlantı kullanan CI yapılandırması
Bir işlem hattı dosyası varsayılanları &defaults ile tanımlar ve bunları <<: *defaults ile yeniden kullanır. JSON'a dönüştürmek, birleştirme işleminden sonra her işin hangi anahtarları aldığını gösterir.
OpenAPI belirtimi
Bir OpenAPI dosyası YAML biçiminde tutuluyor, ancak kod oluşturucu JSON gerektiriyor. YAML'ı yapıştırın, 2 boşluk girintisini seçin ve .json dosyasını indirin.
Sık sorulan sorular
YAML'da "yes" neden tırnak içinde yazılıyor?
PyYAML, Ansible ve diğer birçok araçta hâlâ kullanılan YAML 1.1 kurallarına göre, tırnak içine alınmamış yes, no, on veya off birer boole değeridir. Tırnak kullanmak, her ayrıştırıcıda bunların dize olarak kalmasını sağlar. Tırnaklar değerin parçası değildir.
JSON'a dönüştürürken YAML yorumları korunur mu?
Hayır. JSON'da yorum sözdizimi olmadığından yorumlar kaldırılır. JSON'ı tekrar YAML'a dönüştürmek yorumları geri getirmez.
--- ile ayrılmış birden fazla YAML belgesine ne olur?
Belgeler, her biri bir öğe olacak ve sıraları korunacak şekilde tek bir JSON dizisine dönüştürülür. Tek bir belge doğrudan kendi değerine dönüştürülür.
CloudFormation'ın !Ref etiketi gibi özel etiketlere ne olur?
Uygulamaya özgü etiketler tanınmaz. Araç bir uyarı gösterir ve etiketli değeri normal bir değer olarak dönüştürür. Bu nedenle !Ref MyBucket, "MyBucket" dizesine dönüşür ve etiket kaybolur.
Gizlilik
Her iki yöndeki dönüştürme de tamamen tarayıcınızda yapılır. JSON veya YAML verileriniz yüklenmez, saklanmaz ya da analiz verilerine eklenmez.