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

JSON çıktısı

YAML'dan JSON'a nasıl kullanılır?

  1. YAML'ı sol kutuya yapıştırın veya bir .yaml/.yml dosyası açın.
  2. JSON siz yazdıkça sağda görünür. Çıktı için 2 boşluk, 4 boşluk veya sekme seçin.
  3. Anahtarları alfabetik sıralamak için Anahtarları sırala'yı işaretleyin. Bu, yapılandırmaları karşılaştırırken işe yarar.
  4. 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.
  5. 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) \n kaçış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, false anlamına gelir; böylece Norveç'in ülke kodu NO kaybolur. Aynısı yes, on, off, y ve n için de geçerlidir. YAML 1.2 yalnızca true ve false değerlerini boolean kabul eder.
  • Sekizlik sayılar: 0755 1.1'de sekizlik, ancak 0o755 kullanan 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?
Hayır. Ayrıştırma, açık kaynaklı js-yaml kütüphanesiyle tarayıcınızda yapılır. Gizli bilgiler veya dahili sunucu adları içeren yapılandırmalar bilgisayarınızdan asla çıkmaz.
YAML'ım neden “bad indentation” hatası veriyor?
YAML'da iç içelik boşluklarla tanımlanır ve girinti için sekme kullanılamaz. Kardeş anahtarların tam olarak hizalandığından ve liste öğelerinin (-) üst anahtarlarının altında tutarlı şekilde girintilendiğinden emin olun.
YAML yorumlarına ne olur?
Kaldırılırlar. JSON'da yorum sözdizimi yoktur, bu yüzden yorumlar aktarılamaz. YAML'a geri dönüştürmek de onları geri getirmez.
<code>no</code> neden dize olarak kaldı?
Bu araç, yalnızca 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?
Evet. --- 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.

İlgili araçlar