JSON'dan YAML'a dönüşüm, verileri JavaScript Object Notation'dan YAML Ain't Markup Language'e aktarır. Her iki format da aynı veri yapılarını (nesneler, diziler, dizgeler, sayılar, boolean'lar, null) temsil eder; ancak farklı sözdizimi kullanır. JSON süslü parantez, köşeli parantez ve virgüllere dayanır. YAML ise girintileme ve satır sonları kullanır; bu da çıktının düz metne daha yakın okunmasını sağlar. XML'in aksine, her iki format da şema gerektirmez.
YAML, insan dostu bir veri serileştirme formatı olarak tasarlanmıştır. Kubernetes manifest'leri, Docker Compose dosyaları, Ansible playbook'ları, GitHub Actions iş akışları ve pek çok CI/CD sistemi için varsayılan yapılandırma dilidir. Kaynak verileriniz JSON biçimindeyken hedef sisteminiz YAML bekliyorsa, her değeri, türü ve iç içe geçme düzeyini veri kaybı olmadan koruyan bir dönüştürücüye ihtiyacınız vardır.
JSON'dan YAML'a çevrimiçi dönüştürme, API yanıtları veya JSON olarak dışa aktarılan verileri alıp bir YAML yapılandırma dosyasına yapıştırmanız gerektiğinde oldukça kullanışlıdır. Dönüşüm, tüm standart JSON türleri için kayıpsızdır: dizgeler, sayılar, boolean'lar, null, diziler ve nesneler doğrudan YAML karşılıklarına eşlenir. İki nokta veya özel karakter içeren değerler otomatik olarak tırnak içine alınarak geçerli YAML çıktısı sağlanır.
Neden JSON'dan YAML'a Dönüştürülür?
YAML yapılandırma dosyalarının standardıdır; JSON ise API'lerin döndürdüğü formattır. Aralarında dönüşüm yaparak verileri elle yeniden yazmadan her görev için doğru formatı kullanabilirsiniz.
⚡
Anında Dönüşüm
JSON'u yapıştırın ve YAML çıktısını hemen alın. Sunucu işleme beklentisi yok, dosya yüklemesi yok, hız sınırı yok.
🔒
Gizlilik Öncelikli İşlem
Verileriniz tarayıcınızdan çıkmaz. Dönüşüm tamamen cihazınızdaki JavaScript ile çalışır; kimlik bilgileriniz, token'larınız ve API anahtarlarınız gizli kalır.
🔀
Her JSON Yapısını İşler
Derin iç içe geçmiş nesneler, büyük diziler, karışık türler, Unicode dizgeler ve özel karakterlerin tümü doğru şekilde dönüştürülür. Araç tam veri yapısını korur.
📋
Hesap veya Kurulum Gerekmez
Sayfayı açın ve dönüştürmeye başlayın. Kayıt yok, eklenti yok, kurmanız gereken CLI aracı yok. Tarayıcısı olan her cihazda çalışır.
JSON'dan YAML'a Kullanım Senaryoları
Kubernetes ve Docker Compose
API yanıtları ve dışa aktarılan yapılandırmalar genellikle JSON olarak gelir. Bunları Kubernetes manifest'lerinde, Helm chart'larında ve Docker Compose dosyalarında doğrudan kullanmak için YAML'a dönüştürün.
CI/CD Pipeline Yapılandırması
GitHub Actions, GitLab CI, CircleCI ve Azure Pipelines'ın tümü YAML kullanır. JSON'dan programatik olarak pipeline yapılandırması oluştururken, commit etmeden önce çıktıyı dönüştürün.
Ansible Playbook'ları
Ansible, playbook'lar ve envanter dosyaları için YAML bekler. Bulut API'lerinden alınan JSON envanter dışa aktarmalarını Ansible'ın gerektirdiği YAML formatına dönüştürün.
API Yanıtı İnceleme
REST API'ler JSON döndürür. İç içe geçmiş bir yanıtı YAML'a dönüştürmek, veri hiyerarşisini bir bakışta görünür kılar; bu, parantez dolu JSON'a kıyasla çok daha hızlı taranır.
Yapılandırma Dosyası Geçişi
Bir uygulamayı JSON tabanlı yapılandırmadan (örn. tsconfig.json, package.json dışa aktarmaları) YAML tabanlı araçlara geçirirken, değerleri yeniden yazmak yerine toplu olarak dönüştürün.
Öğrenme ve Dokümantasyon
Öğrenciler ve teknik yazarlar, veri yapılarının formatlar arasında nasıl eşlendiğini anlamak için JSON/YAML'ı yan yana kullanır. Dönüştürücü anında ve doğru örnekler sunar.
JSON ve YAML Karşılaştırması
JSON ve YAML aynı verileri temsil edebilir; ancak sözdizimi ve yetenekleri belirli kullanım senaryoları için önem taşıyan farklılıklar içerir.
Özellik
JSON
YAML
Syntax
Curly braces, square brackets, colons, commas
Indentation-based, colons, dashes
Readability
Moderate — nested brackets become dense
High — visual hierarchy from indentation
Comments
Not allowed (RFC 8259)
Supported with #
Multi-line strings
Escape sequences only (\n)
Block scalars with | or >
Data types
string, number, boolean, null, object, array
Same plus date, timestamp, binary
File size
Slightly larger (brackets + quotes)
Slightly smaller (no brackets)
Trailing commas
Not allowed
Not applicable (no commas)
Spec
RFC 8259 / ECMA-404
YAML 1.2 (yaml.org)
Dönüşüm Sonrası YAML Tuzakları
YAML'ın, JSON'dan gelen geliştiricileri şaşırtan ayrıştırma kuralları vardır. Bu dört sorun, dönüştürülmüş çıktıyla çalışırken en fazla hataya neden olur.
Tırnaksız yes/no Boolean'a Dönüşür
YAML 1.1 ayrıştırıcıları çıplak yes, no, on, off, true ve false değerlerini boolean olarak işler. JSON'unuzda "yes" veya "no" dizge değeri varsa, YAML çıktısı tırnak işaretlerini kaybedebilir ve eski araçlar tarafından boolean olarak ayrıştırılabilir. YAML 1.2 bunu yalnızca true/false ile sınırlandırır.
Girintileme Hataları Ayrıştırmayı Bozar
YAML yapıyı tanımlamak için girintileme kullanır. Tek bir fazla veya eksik boşluk anlamı değiştirebilir ya da ayrıştırma hatasına yol açabilir. Hatalı yerleştirilmiş virgülün açık bir hata verdiği JSON'un aksine, YAML girintileme hataları veri hiyerarşinizi sessizce değiştirebilir.
Değerlerdeki İki Noktalar Tırnak Gerektirir
Boşlukla takip edilen iki nokta (": "), YAML'ın anahtar-değer ayırıcısıdır. JSON dizgeniz bu diziyi içeriyorsa (örn. "http://example.com"), YAML çıktısı değeri tırnak içine almalıdır. Çoğu dönüştürücü bunu otomatik olarak yapar.
Çok Belgeli Dosyalar
YAML, --- ile ayrılmış tek bir dosyada birden fazla belgeyi destekler. JSON'un buna karşılık gelen bir özelliği yoktur. Bir JSON yapılandırma dizisini dönüştürürken her öğe ayrı bir YAML belgesi veya dizi öğesi olabilir. Hedef aracınızın hangi formatı beklediğini bilin.
Kod Örnekleri
JSON'u YAML'a programatik olarak dönüştürmek, çoğu dilde bir YAML serileştirme kütüphanesi gerektirir. Standart kütüphane JSON ayrıştırmayı halleder; YAML çıktısı için ek bir paket gerekir.
Evet, tüm standart JSON türleri için. Dizgeler, sayılar, boolean'lar, null, diziler ve nesnelerin doğrudan YAML karşılıkları vardır. Dönüştürülen YAML, özdeş veriler üretmek için geri ayrıştırılabilir. Tek görsel fark biçimlendirmedir: YAML süslü parantez yerine girintileme kullanır.
YAML, JSON'un temsil edebildiği her şeyi temsil edebilir mi?
Evet. YAML, JSON'un bir üst kümesidir (YAML 1.2 itibarıyla). Her geçerli JSON belgesi aynı zamanda geçerli bir YAML belgesidir. YAML, JSON'un sahip olmadığı özellikler ekler: yorumlar, anchor/alias yapıları, çok satırlı dizgeler ve tarihler gibi ek skaler türler.
Kubernetes ve Docker neden JSON yerine YAML kullanır?
YAML yorumları destekler; bu, altyapı yapılandırmasını belgelemek için kritik öneme sahiptir. Ayrıca derin iç içe geçmiş yapılar için daha okunabilirdir çünkü girintileme parantez kalabalığının yerini alır. Kubernetes aslında hem JSON hem de YAML'ı kabul eder; ancak topluluk ve tüm resmi belgeler YAML kullanır.
Büyük JSON dosyalarını nasıl işlerim?
Bu dönüştürücü tarayıcınızda çalışır; bu nedenle birkaç megabayta kadar dosyaları sorunsuz işleyebilir. Çok büyük dosyalar (50MB+) için yq gibi bir CLI aracı veya PyYAML kütüphanesiyle bir Python betiği kullanın. Bunlar verileri akış olarak işler ve daha az bellek kullanır.
Dönüştürücü anahtar sırasını korur mu?
Evet. Dönüştürücü, YAML anahtarlarını JSON girişinde göründükleri sırayla çıkarır. JSON nesneleri teknik olarak spesifikasyon gereği sırasızdır; ancak pratikte ayrıştırıcılar ekleme sırasını korur ve bu araç o sırayı YAML çıktısında da sürdürür.
Çıktı hangi YAML sürümünü takip eder?
Çıktı, YAML 1.2 kurallarını takip eder. Bu, yalnızca true ve false'un boolean literal olarak işlendiği anlamına gelir (yes/no/on/off değil). Yanlış yorumlanabilecek dizgeler, ayrıştırma belirsizliğini önlemek için otomatik olarak tırnak içine alınır.
API anahtarları ve token'ları bu araca yapıştırmak güvenli midir?
Evet. Dönüşüm tamamen tarayıcınızda JavaScript kullanılarak çalışır. Hiçbir veri herhangi bir sunucuya iletilmez. Tarayıcınızın ağ denetçisini açıp dönüşüm sırasında hiçbir istek yapılmadığını gözlemleyerek bunu doğrulayabilirsiniz.