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

JSON'u Kubernetes, Docker Compose, GitHub Actions veya Ansible için temiz ve okunaklı YAML'a dönüştürün; girinti, stil ve tırnaklar üzerinde tam kontrol sizde.

Tarayıcınızda çalışırKayıt gerekmezHiçbir şey yüklenmez

JSON çıktısı

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

  1. JSON'u sol kutuya yapıştırın veya bir .json dosyası açın.
  2. YAML siz yazdıkça sağda görünür.
  3. Girintiyi (2 veya 4 boşluk) ve stili seçin: blok (her satırda bir anahtar) veya belirli bir iç içelik seviyesinden itibaren flow ({a: 1}/[x, y]).
  4. Bir tırnak stili seçin; alfabetik sıra istiyorsanız Anahtarları sırala'yı işaretleyin.
  5. YAML'ı kopyalayın veya indirin. Geçersiz JSON satırı, sütunu ve olası nedeniyle birlikte bildirilir.

JSON neden YAML'a dönüştürülür?

JSON makineler ve API'ler için idealdir, ancak YAML'ı insanlar daha kolay okur ve düzenler: süslü parantez yok, zorunlu tırnak yok ve yorum desteği var. Kubernetes, Helm, Docker Compose, GitHub Actions, GitLab CI ve Ansible dahil çoğu altyapı aracı YAML ile yapılandırılır; oysa başlangıç noktanız olan veri (API çıktısı, kubectl get -o json, Terraform state) çoğu zaman JSON'dur.

Blok ve flow stili

Blok stili her anahtarı ve liste öğesini ayrı bir satıra koyar ve yapılandırma dosyaları için geleneksel tercihtir. Flow stili JSON gibi satır içi {} ve [] kullanır ve kısa yaprak yapıları kompakt tutar. “2. seviyeden itibaren flow” üst iki seviyeyi blok stilinde tutar ve daha derin her şeyi satır içine alır; bu da portlar veya ortam değişkenleri gibi küçük nesnelerden oluşan uzun listeler için iyi sonuç verir.

Güvenli tırnaklama

Bir YAML ayrıştırıcısının yanlış yorumlayabileceği dizeler otomatik olarak tırnaklanır: 'no', 'on', '1.0', 'null' gibi değerler, başında * veya & olan dizeler ve : içeren dizeler. Stil kılavuzunuz her dizenin tırnaklanmasını gerektiriyorsa Her zaman tek tırnak veya Her zaman çift tırnak'ı seçin.

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

Dönüştürme kayıpsız mı?
Evet. Her JSON belgesi geçerli bir YAML 1.2 belgesidir ve oluşturulan YAML ayrıştırıldığında birebir aynı veriyi verir. Yer değiştir'e basarak kontrol edebilirsiniz.
Neden bazı dizeler tırnaklı, bazıları değil?
Yalnızca gerektiğinde seçeneğiyle tırnaklar yalnızca tırnaksız bir değerin anlamının değişeceği yerlere eklenir; örneğin 'yes', '123' veya özel karakter içeren dizeler. Geri kalan her şey okunabilirlik için tırnaksız bırakılır.
Çıktıya yorum ekleyebilir miyim?
JSON'da yorum olmadığı için dönüştürülecek yorum da yoktur, ancak kopyaladıktan sonra YAML'a # comments ekleyebilirsiniz.
Anahtar sırası değişiyor mu?
Hayır. Anahtarları sırala'yı işaretlemediğiniz sürece anahtarlar JSON'daki sıralarını korur.
Verilerim gizli kalıyor mu?
Evet. Dönüştürücü tarayıcınızda çalışır ve girdinizle hiçbir ağ isteği yapmaz.

İlgili araçlar