Tüm araçlar

YAML ↔ JSON Çevirici

YAML ile JSON arasında çift yönlü dönüşüm

Nasıl çalışır

YAML ↔ JSON ÇeviriciYAML ile JSON arasında çift yönlü dönüşüm. Tüm işlemler tarayıcında yapılır — yükleme yok, üyelik yok, e-posta gerek yok. Sonsuza dek ücretsiz.

Son güncelleme:

YAML ↔ JSON Çevirici hakkında

YAML ve JSON aynı veri şekillerini — object, array, string, number, boolean, null — çok farklı syntax'larla ifade eder. YAML config düzenleyen insanlar için (Kubernetes manifest, GitHub Actions workflow, Helm values) daha dost canlısıdır; JSON ise API'lerin ve araçların konuştuğu evrensel değişim formatıdır. Bu çift yönlü dönüştürücü ikisi arasında, Node REPL açmadan veya config'ini upload eden bir online araç aramadan flip yapmana izin verir.

YAML → JSON yönünü, sadece JSON kabul eden bir araca config beslemen gerektiğinde, bir Kubernetes manifest'ini JSON Schema ile doğrulamak istediğinde veya derinlemesine nested bir YAML'ın gerçekten ne parse ettiğini görmek istediğinde kullan. JSON → YAML yönünü, yeni bir Helm chart iskelesi kurarken, mevcut bir JSON config üzerine GitHub Actions yazarken veya bir API yanıtını elle düzenleyebileceğin bir config dosyasına çevirirken kullan.

Her iki yön de tarayıcında js-yaml kütüphanesi üzerinden tamamen yerel çalışır — sayısız Node.js aracının kullandığı parser. Genelde environment adları, internal hostname'ler ve hatta henüz sanitize edilmemiş secret'lar barındıran config verin sayfadan asla çıkmaz. Upload yok, log yok, sign-in yok.

YAML ↔ JSON Çevirici nasıl kullanılır

  1. Yöne göre kaynağı YAML tarafına veya JSON tarafına yapıştır.
  2. Diğer formata dönüştürmek için "YAML → JSON" veya "JSON → YAML" düğmesine bas.
  3. Indent'i (2 veya 4 boşluk) projenin stiline göre ayarla.
  4. Parser girdiyi reddederse "Geçersiz YAML" veya "Geçersiz JSON" mesajını oku — vurgulanan hatayı düzelt ve tekrar dene.
  5. Dönüştürülmüş çıktıyı kopyala ve config dosyana, manifest'ine veya test fixture'ına yapıştır.

Yaygın kullanım senaryoları

  • Bir Kubernetes YAML manifest'ini JSON'a çevirip jq'dan geçirmek veya JSON Schema ile doğrulamak.
  • Bir Helm values.yaml'i JSON'a çevirerek iki environment'ı yapısal bir diff aracıyla karşılaştırmak.
  • Bir API yanıtını (JSON) elle düzenleyebileceğin YAML fixture'a çevirmek.
  • Bir CI aracının export ettiği mevcut JSON config'lerden GitHub Actions workflow iskelesi kurmak.
  • Anchor ve merge key (<<:) içeren bir YAML dosyasının gerçekten beklediğin veriye çözüldüğünü doğrulamak.

İpuçları ve dikkat edilmesi gerekenler

  • JSON'a çevirirken YAML anchor ve alias'ları ("&base", "*base") tamamen çözülür çünkü JSON'da anchor kavramı yoktur. Ters yönde anchor üretilmeyen düz YAML çıkar.
  • YAML'ın "Norway problemi"ne dikkat: tırnaksız "NO", "yes", "on", "off" boolean olarak parse edilir. Bunları string istiyorsan tırnak içine al veya önce JSON'a çevirip ne olduğunu gör.
  • JSON çift tırnaklı key ve string ister — YAML genelde atlar. YAML'i elle JSON dosyasına geçirirsen her key için tırnak eklemen gerekir.
  • YAML'da indentation syntax'ın bir parçası. Kubernetes, Ansible ve GitHub Actions için iki boşluk de facto standart — etrafındaki dosyalar ne kullanıyorsa onu kullan.

Sıkça sorulan sorular

Anchor ve alias'lar korunur mu?

YAML → JSON dönüşümünde anchor/alias'lar referans verdikleri değerlerle çözümlenir (JSON'da anchor kavramı yoktur). Ters yönde anchor olmayan düz YAML üretilir.

Tarihler ve özel tipler nasıl işleniyor?

YAML 1.1 default schema'sını kullanıyoruz. YAML'daki tarihler JSON'da ISO-8601 string olur. Boolean, sayı ve null tipleri native JSON tipi olarak korunur.

Verilerim yükleniyor mu?

Hayır. Her iki yöndeki dönüşüm de js-yaml ile tarayıcıda çalışır — hiçbir şey hiçbir yere gönderilmez.

Parser hangi YAML versiyonunu hedefliyor?

js-yaml, opsiyonel 1.2 modlarıyla YAML 1.1 default schema'sını destekler. Pratikte çoğu gerçek dünya aracının (Kubernetes, Ansible, Docker Compose) tükettiği şey budur, dolayısıyla ileri-geri dönüşüm uyumlu kalır.

YAML'ı JSON üzerinden round-trip ettiğimde yorumlar korunur mu?

Hayır — JSON'da yorum syntax'ı yok, dolayısıyla YAML "#" yorumları YAML → JSON adımında düşer ve geri inşa edilemez. Yorumlar önemliyse orijinal kopyayı sakla.

Çoklu doküman içeren YAML dosyaları (---) nasıl işleniyor?

Dönüştürücü ilk dokümanı yükler. Multi-doc dosyalar için "---" işaretlerinden böl ve her bloğu ayrı ayrı dönüştür, ya da dokümanları kendin bir JSON array'ine sar.

Blogdan son yazılar

İlgili araçlar