YAML'dan JSON'a Dönüştürücü
YAML'ı (Kubernetes manifest'leri, Docker Compose, CI yapılandırmaları) yapıştırın ve anında temiz JSON alın. Hatalar, işaretçiyle birlikte tam satırı gösterir.
Tarayıcınızda çalışırKayıt gerekmezHiçbir şey yüklenmez
YAML'dan JSON'a nasıl kullanılır?
- YAML'ı sol kutuya yapıştırın veya bir
.yaml/.ymldosyası açın. - JSON siz yazdıkça sağda görünür. Çıktı için 2 boşluk, 4 boşluk veya sekme seçin.
- Anahtarları alfabetik sıralamak için Anahtarları sırala'yı işaretleyin. Bu, yapılandırmaları karşılaştırırken işe yarar.
- YAML geçersizse durum çubuğu satırı ve sütunu gösterir; sorunlu satırlar da altında bir
^işaretçisiyle görünür. - JSON'u kopyalayın veya indirin ya da YAML'a geri dönüştürmek için Yer değiştir'e basın.
YAML, JSON'a nasıl eşlenir?
JSON, YAML 1.2'nin bir alt kümesidir; bu yüzden her YAML mapping'i bir JSON nesnesine, her sequence bir diziye, skaler değerler ise dize, sayı, boolean veya null değerine dönüşür. Yalnızca YAML'a özgü özellikler dönüştürme sırasında çözümlenir:
- Yorumlar (
# …) atılır, çünkü JSON'da yorum yoktur. - Anchor'lar ve alias'lar (
&base,*base,<<: *base) tam kopyalara genişletilir. - Zaman damgaları, örneğin
2024-01-02, ISO 8601 dizelerine dönüşür. - Çok satırlı dizeler (
|literal ve>folded bloklar)\nkaçışlı sıradan dizelere dönüşür.
Çok belgeli YAML
Tek bir dosya, Kubernetes manifest'lerinde yaygın olduğu gibi --- ile ayrılmış birkaç YAML belgesi içerebilir. JSON'da bunun bir karşılığı yoktur; bu yüzden dönüştürücü her belge için bir öğe içeren bir JSON dizisi döndürür ve bunu durum çubuğunda belirtir. Sondaki tek başına bir --- yok sayılır.
YAML 1.1 ve 1.2 tuzakları
Bu dönüştürücü güncel spesifikasyon olan YAML 1.2'yi izler. Birçok eski araç (PyYAML, Ruby'nin Psych'i, bazı Kubernetes ve Ansible sürümleri) hâlâ kuralların farklı olduğu YAML 1.1'i okur:
- Norveç sorunu: YAML 1.1'de
country: no,falseanlamına gelir; böylece Norveç'in ülke koduNOkaybolur. Aynısıyes,on,off,yveniçin de geçerlidir. YAML 1.2 yalnızcatruevefalsedeğerlerini boolean kabul eder. - Sekizlik sayılar:
07551.1'de sekizlik, ancak0o755kullanan 1.2'de düz bir ondalık sayıdır. Güvende olmak için dosya izinlerini tırnak içine alın. - Altmışlık sayılar: 1.1'de
22:30, 1350 sayısı olarak ayrıştırılabilir. Saatleri ve"8080:80"gibi port eşlemelerini tırnak içine alın.
JSON → YAML yönü belirsiz dizeleri ('no', 'on', 'y') otomatik olarak tırnaklar; böylece ürettiği YAML her iki sürümde de aynı şekilde okunur.
Sıkça sorulan sorular
YAML'ım bir yere yükleniyor mu?
YAML'ım neden “bad indentation” hatası veriyor?
-) üst anahtarlarının altında tutarlı şekilde girintilendiğinden emin olun.YAML yorumlarına ne olur?
<code>no</code> neden dize olarak kaldı?
true/false'un boolean olduğu YAML 1.2'yi izler. Eski YAML 1.1 ayrıştırıcıları no, yes, on ve off değerlerini boolean'a çevirirdi (“Norveç sorunu”).Birden fazla kaynak içeren bir Kubernetes manifest'ini dönüştürebilir miyim?
--- ile ayrılmış her kaynak, çıktı JSON dizisinin bir öğesi olur; jq veya JSON listelerini de kabul eden kubectl apply -f - için hazırdır.