YAML ↔ JSON Dönüştürücü
YAML, 2010'ları JSON'un katı supersetı olarak insan-dostu sözdizimiyle kazanan config formatıdır. JSON her string etrafında tırnak, her liste etrafında köşeli parantez, her nesne etrafında süslü parantez gerektirirken; YAML config'leri prose gibi yazmanıza izin verir — girinti yapıyı tanımlar, tireler liste öğelerini, iki nokta üst üste anahtar-değeri işaret eder. Kubernetes manifest, Docker Compose, GitHub Actions, Ansible playbook, OpenAPI spec, Helm chart YAML'da yaşar. Modern devops işakışı bir noktada YAML/JSON çevirisini içerir. Bu araç iki yönü tek arayüzde, gerçek vakalar için doğru yapılandırmalarla yapar.
YAML-to-JSON yönü daha basit. js-yaml kütüphanesi parsing yapar; varsayılan yerine yaml.JSON_SCHEMA kullanırız. YAML 1.1 varsayılan şeması quote'siz number, boolean veya tarih görünen string'leri o tip olarak yorumlar — yes, no, on, off boolean olur, 2024-01-01 Date olur. Bu YAML 1.1 spec'ine göre doğru ama subtle config bug'ları kaynağıdır. JSON-güvenli şema quote'siz string'leri string olarak işler.
JSON-to-YAML yönü temiz görünür çünkü ortaya çıkan YAML genellikle JSON kaynağından okunabilir. String'ler tırnaklarını düşürür, brackets gider, girinti süslüleri değiştirir, sonuç data dump değil config dosyası gibi okunur. Block stil (insanların istediği indented prose form), flow stil (JSON-şekilli inline) seçenekleri var. Sort keys özelliği — Kubernetes için apiVersion, kind, metadata gibi geleneksel key sırası vardır; alfabetik sıralamak konvansiyonu kırabilir; varsayılan kapalı.
Aracın yardım ettiği yerler: Kubernetes manifest debug (hata mesajı malformed alanı yaymak için JSON'a çevirin), CI config karşılaştırma (GitHub Actions/GitLab/CircleCI hepsi YAML; ikisini de JSON'a çevirip diff'leyin), JSON kaynağından YAML üretmek (insan-okunabilir saklama için repo'ya commit), legacy tool import (yalnızca JSON kabul edenlere YAML'dan), öğretim.
Yaygın YAML tuzakları: 'Norway problem' (NO YAML 1.1'de boolean false parse edilir — Norveç ISO kodu boolean'a benzer; ülke listesinde NO surprise üretir). JSON_SCHEMA modumuz NO'yu string olarak işler. 'Tarih problemi' benzer (2024-01-01 default şemada Date'e parse, round-trip'te quoted ISO string'e serialize — round-trip kararlılığı kırılır). 'Tab problemi' YAML'ın tab-with-indent yasağıdır.
Multi-doc YAML (--- ile ayrılmış birden fazla doc) parse edilir; JSON çıktısı tek belge — multi-doc giriş JSON dizisine dönüşür. Anchor ve alias (& ve *) parse sırasında çözülür; JSON çıktısı çözülmüş değerleri içerir. Round-trip'te anchor yapısı kaybolur (JSON'da yok).
JSON çıktı biçimi: 2-boşluk (en yaygın), 4-boşluk (uzun süredir bazı mağazalarda), minified (tek satır). YAML çıktı: block (varsayılan), flow, line width, no refs, sort keys.
Gizlilik aynı: yükleme yok, log yok, tarayıcıda. Config'ler genelde gerçek secret içerir; bu önemlidir. Bu araç komşularıyla eşleşir: JSON Viewer, JSON to TypeScript, JSON Diff (iki YAML config'i karşılaştırmak için), XML ↔ JSON (XML dünyası için paralel utiliti).
- Kubernetes manifest'lerini YAML/JSON arası debug için çevirin.
- İki CI workflow dosyasını (GitHub Actions, GitLab CI) önce JSON'a çevirip diff'leyin.
- JSON veri kaynağından insan-okunabilir saklama için YAML config üretin.
- Yalnızca JSON kabul eden legacy araçlara YAML import edin.
- Helm values.yaml'ı JSON olarak inceleyerek yapısal sorun yakalayın.
- Docker Compose dosyasını round-trip yaparak boşluğu normalize edin.
- İki yönde gerçek zamanlı çevirerek YAML/JSON eşlemesini öğretin.
- YAML config'in JSON-güvenli kurallar altında temiz parse edildiğini doğrulayın.
- 1Yön seçin: YAML → JSON veya JSON → YAML.
- 2Kaynağı sola yapıştırın veya .yaml / .json dosyası yükleyin.
- 3Çıktıyı ayarlayın: JSON girinti (2/4/min) veya YAML stil (block/flow, line width, sort keys).
- 4Dönüştürülmüş çıktı sağda güncellenir.
- 5Yön değiştir butonuyla round-trip yapın.
- 6Kopyala'ya tıklayın veya .json / .yaml indirin.