YAML'dan JSON'a

YAML elle yazmak için daha güzeldir, JSON programatik olarak tüketmek için daha güzeldir ve birçok modern araç (CI işlem hatları, Kubernetes, Ansible) her ikisini de kabul eder. Yapılandırmayı JSON konusunda ısrar eden bir araca yapıştırmanız gerektiğinde, API Gateway tanımları, CloudFormation şablonları, bazı webhook gövdeleri, bu dönüştürücü gidiş-dönüşü yapar. Çapalar, birleştirmeler ve YAML’a özgü türler (tarihler, sekizlikler, null, ~) hepsi JSON karşılıklarına normalleştirilir.

YAML, JSON'a nasıl dönüştürülür

  1. 1

    YAML yapıştırın

    Herhangi bir geçerli YAML 1.1 ya da 1.2 belgesi.

  2. 2

    Çapaları çözün

    Çapalar (`&x`) ve takma adlar (`*x`) satır içi genişletilir. Birleştirme anahtarları (`<<`) düzleştirilir.

  3. 3

    Türleri normalleştirin

    Tarihler, null değerler, booleanlar hepsi JSON karşılıklarına dönüştürülür.

  4. 4

    JSON çıkarın

    Düzenli yazdırılmış ya da küçültülmüş, sizin tercihiniz.

Örnek dönüşüm

YAML:

defaults: &defaults
  timeout: 30
  retries: 3

production:
  <<: *defaults
  host: prod.example.com
  debug: false

staging:
  <<: *defaults
  host: staging.example.com
  debug: true

JSON (çapalar çözülmüş):

{
  "defaults": {
    "timeout": 30,
    "retries": 3
  },
  "production": {
    "timeout": 30,
    "retries": 3,
    "host": "prod.example.com",
    "debug": false
  },
  "staging": {
    "timeout": 30,
    "retries": 3,
    "host": "staging.example.com",
    "debug": true
  }
}

Tür eşlemeleri

YAML JSON
Dize Dize
Tam sayı Sayı
Kayan noktalı sayı Sayı
Mantıksal değer (true, false) Mantıksal değer
Boş (null, ~, boş) null
Zaman damgası ISO 8601 dize
Dizi (liste) Dizi
Eşleme Nesne

JSON’un temsil edemediği YAML’a özgü şeyler

  • Yorumlar. JSON’un standart yorum sözdizimi yoktur. Yorumlar atılır.
  • Çok belgeli akışlar (--- ayırıcıları). JSON dosya başına tek belgedir; dönüştürücü birden çok olduğunda bir belgeler dizisi yayar.
  • Çapalar ve takma adlar. Çözülür ve satır içi çoğaltılır.
  • Karmaşık anahtarlar (dize olmayan eşleme anahtarları). JSON anahtarları dize olmalıdır; karmaşık anahtarlar dizeye dönüştürülür.

1.1 ile 1.2 tuzağı

  • YAML 1.1, yes, no, on, off, y, n’yi boolean olarak ayrıştırır. Ülke kodu olarak NO sessizce false olur.
  • YAML 1.2 booleanları true ve false ile sınırlar. Daha güvenli ama birçok ayrıştırıcı (PyYAML varsayılanı dâhil) hâlâ 1.1 kullanır.

Dönüştürücü 1.2 anlambilimine varsayılır ve 1.1’in sonucu değiştireceği durumda uyarır.

JSON’dan YAML’a geri gidiş-dönüş

JSON’dan YAML’a genellikle kayıpsızdır (JSON, YAML 1.2 sözdiziminin bir alt kümesidir). YAML’dan JSON’a kayıplıdır: yorumlar ve birleştirme anahtarı yapısı kaybolur. Gidiş-dönüş yapmayı planlıyorsanız, orijinal YAML’ı sürüm kontrolünde koruyun.

Sık Sorulan Sorular

Hayır, bunların YAML ayrıştırmasından önce çalışan kendi şablonlaması vardır. Önce şablonu işleyin (kustomize build ya da helm template ile), ardından çıktıyı buraya verin.

YAML zaman damgaları JSON’da ISO 8601 dizeleri olur. 2026-04-18, "2026-04-18" olur. Saatler ve saat dilimleri korunur.

Tarayıcıdaki pratik sınır yaklaşık 10 MB’tır. Daha büyük dosyalar için komut satırında yq ya da python -c "import yaml, json; print(json.dumps(yaml.safe_load(open(file))))" kullanın.

Hayır. Dönüşüm tarayıcınızda çalışır ve hiçbir şey iletilmez.

İlgili Araçlar

Araç diğer dillerde mevcuttur