IT
OmnvertGörsel • Belge • Ağ

YAML ↔ JSON Dönüştürücü

Convert YAML to JSON or JSON to YAML in either direction. Live, configurable, and entirely client-side.
Developer Tools →
Indent
Input lines
27
Output lines
0
Output bytes
0
YAML input
411 chars
JSON output
0 chars
100% client-side: input never leaves your browser.
About this tool

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).

Kullanım senaryoları
  • 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.
Nasıl çalışır
  1. 1Yön seçin: YAML → JSON veya JSON → YAML.
  2. 2Kaynağı sola yapıştırın veya .yaml / .json dosyası yükleyin.
  3. 3Çıktıyı ayarlayın: JSON girinti (2/4/min) veya YAML stil (block/flow, line width, sort keys).
  4. 4Dönüştürülmüş çıktı sağda güncellenir.
  5. 5Yön değiştir butonuyla round-trip yapın.
  6. 6Kopyala'ya tıklayın veya .json / .yaml indirin.
SSS
Neden varsayılan JSON-güvenli şema?
Varsayılan YAML 1.1 şeması surprising tip-coercion kuralları içerir (NO false olur, 2024-01-01 Date olur). JSON-güvenli şema quote'siz scalar'ları string olarak işler — 'Norway problem'i önler.
Yorumlar korunuyor mu?
Hayır — JSON yorum sözdizimine sahip değil, dolayısıyla YAML→JSON yorumları siler. Round-trip için YAML-aware editör kullanın.
Anchor ve alias (& ve *) işleniyor mu?
Parse için evet — alias'lar anchor değerlerine YAML→JSON sırasında çözülür. Ters yön anchor regenerate etmez.
Multi-doc YAML?
--- ile ayrılmış girişler JSON dizisine dönüşür. Doc başına ayrı JSON için önce --- üzerinden ayırıp her birini bağımsız çevirin.
Kubernetes manifest çevirir mi?
Evet — Kubernetes YAML manifest'leri standart YAML'dır, temiz çevrilir. Ortaya çıkan JSON kubectl'in API server'a gönderdiği şeydir.
YAML/JSON sunucuya gidiyor mu?
Hayır. Tarayıcıda; yükleme yok, log yok.
YAML çıktım kaynağımdan biraz farklı görünüyor?
Dumper YAML'ı parse edilmiş yapıdan regenerate eder; biçim varsayılan ayarlardan üretilir, orijinalden değil. Lossless round-trip için YAML-aware editör.
YAML 1.2 destekleniyor mu?
js-yaml YAML 1.1'i JSON-güvenli mapping ile destekler ki bu çoğu YAML 1.2 beklentisiyle örtüşür. Tipik config'ler için fark minimaldir.