ToolDeck

YAML'dan JSON'a

YAML'ı JSON formatına dönüştür

Örnek dene

YAML Girişi

JSON Çıktısı

Yerel olarak çalışır · Gizli bilgi yapıştırmak güvenlidir
JSON burada görünecek…
Bunu da deneyin:YAML to XML

YAML'dan JSON'a Dönüşüm Nedir?

YAML'dan JSON'a dönüşüm, YAML (YAML Ain't Markup Language) ile yazılmış verileri JSON'a (JavaScript Object Notation) dönüştürür. Her iki format da yapılandırılmış verileri anahtar-değer çiftleri, diziler ve iç içe nesneler olarak temsil eder; ancak sözdizimi farklıdır. YAML girintileme ve minimum noktalama işareti kullanırken, JSON süslü parantez, köşeli parantez ve zorunlu tırnaklama kullanır. Farklı formatlar bekleyen sistemler arasında yapılandırma verileri aktarırken iki format arasında dönüşüm yaygın bir görevdir.

YAML insan okunabilirliği için tasarlanmıştır. Yorumları, çok satırlı dizgeleri, anchor ve alias yapılarını destekler; bunların hiçbiri JSON'da mevcut değildir. YAML'ı JSON'a dönüştürdüğünüzde bu YAML'a özgü özellikler çözümlenir: anchor'lar satır içi olarak genişletilir, yorumlar atılır ve çok satırlı bloklar kaçış karakterli dizgelere dönüşür. Çıktı, herhangi bir JSON ayrıştırıcısının okuyabileceği geçerli JSON'dur.

YAML 1.2 spesifikasyonu, JSON'u açıkça YAML'ın bir alt kümesi olarak tanımlar; yani her geçerli JSON belgesi aynı zamanda geçerli bir YAML belgesidir. Tersi doğru değildir. Yorum, anchor veya karmaşık anahtar kullanan YAML belgeleri için doğrudan JSON karşılığı yoktur ve dönüşüm sırasında basitleştirilmeleri gerekir. Bu araç dönüşümü otomatik olarak gerçekleştirir ve geçerli YAML girişinden temiz, düzgün biçimlendirilmiş JSON üretir.

YAML 1.2 Specification — yaml.org →

Neden Çevrimiçi YAML'dan JSON'a Dönüştürücü Kullanılır?

YAML'ı elle JSON'a dönüştürmek, özellikle derin iç içe yapılar veya çok satırlı değerler söz konusu olduğunda hata yaratmaya açıktır. Tarayıcı tabanlı bir dönüştürücü sonucu anında verir ve YAML sözdizimi hatalarını uygulamanıza ulaşmadan yakalar.

Tarayıcınızda anında dönüşüm
YAML'ınızı yapıştırın ve milisaniyeler içinde biçimlendirilmiş JSON çıktısını alın. Kurulacak CLI aracı yok, derleme adımı yok, yönetilecek bağımlılık yok.
🔀
Her geçerli YAML yapısını işler
İç içe eşlemeler, diziler, çok satırlı dizgeler (literal ve folded bloklar), anchor, alias, birleştirme anahtarları ve tüm YAML 1.2 skaler türleri desteklenir.
🔒
Verilerinizi gizli tutun
Tüm ayrıştırma, JavaScript kullanılarak tarayıcınızda yerel olarak çalışır. YAML içeriğiniz hiçbir zaman sunucuya gönderilmez; bu da onu kimlik bilgileri veya dahili yollar içeren yapılandırma dosyaları için güvenli kılar.
📋
Çıktı formatını kopyalayın veya ayarlayın
2 boşluk ve 4 boşluk girintileme arasında geçiş yapın. JSON sonucunu tek tıklamayla panonuza kopyalayıp doğrudan kodda, API isteklerinde veya yapılandırma dosyalarında kullanın.

YAML'dan JSON'a Kullanım Senaryoları

Frontend Geliştirme
Tasarım sistemi veya CMS'ten gelen YAML yapılandırma dosyalarını, JSON girişi gerektiren JavaScript bundler'ları, REST API'leri veya i18n kütüphaneleri için JSON'a dönüştürün.
Backend Mühendisliği
Spring Boot application.yml veya Rails database.yml dosyalarını yalnızca JSON yapılandırmasını kabul eden dağıtım betiklerine, API geçitlerine veya servislere beslemek için JSON'a dönüştürün.
DevOps ve CI/CD
docker-compose.yml, GitHub Actions iş akışları veya Kubernetes manifest'lerini doğrulama araçları, OPA gibi politika motorları veya jq ile hata ayıklama için JSON'a dönüştürün.
QA ve Test
YAML test fixture'larını Postman, Insomnia gibi API test araçları veya JSON istek gövdesi bekleyen otomatik test paketleri için JSON payload'larına dönüştürün.
Veri Mühendisliği
YAML biçimli pipeline tanımlarını (Airflow, dbt, Dagster) şema doğrulama, programatik düzenleme veya meta veri kataloglarıyla entegrasyon için JSON'a dönüştürün.
Öğrenme ve Dokümantasyon
Yapılandırma formatlarını incelerken veya dokümantasyon yazarken YAML yapılarının JSON karşılıklarına nasıl eşlendiğini hızlıca görün.

YAML'dan JSON'a Tür Eşleme Referansı

Her YAML veri türü dönüşüm sırasında belirli bir JSON türüne eşlenir. Aşağıdaki tablo her YAML yapısını JSON çıktısıyla birlikte gösterir. Bu eşlemeleri anlamak, YAML verilerinizin dönüşüm sonrasında nasıl görüneceğini tahmin etmenize ve boolean veya null değerler gibi türlerle ilgili sürprizlerden kaçınmanıza yardımcı olur.

YAML TürüYAML SözdizimiJSON Çıktısı
Mappingname: Alice{ "name": "Alice" }
Sequence- apple\n- banana["apple", "banana"]
Stringgreeting: hello world"hello world"
Integercount: 4242
Floatratio: 3.143.14
Booleanactive: truetrue
Nullvalue: nullnull
Multiline (|)bio: |\n Line one\n Line two"Line one\nLine two\n"
Folded (>)note: >\n A long\n paragraph"A long paragraph\n"
Anchor/Alias&default\n <<: *defaultResolved inline (no $ref)

YAML ve JSON Sözdizimi

YAML ve JSON aynı veri modelini temsil eder; ancak farklı sözdizimi kuralları kullanır. Aşağıdaki farklar, yorumlar ve anchor'lar gibi bazı YAML özelliklerinin neden JSON karşılığı olmadığını açıklar.

YAML
İç içe geçme için girintileme kullanır (süslü parantez yok). # ile yorum desteği sunar. Dizgeler genellikle tırnak gerektirmez. | (literal) ve > (folded) blok skalarlar ile çok satırlı değerlere izin verir. Yeniden kullanım için anchor (&ad) ve alias (*ad) destekler. YAML 1.2'de yalnızca true ve false boolean değerleri olarak tanınır; eski YAML 1.1 ayrıştırıcıları yes, no, on ve off değerlerini de kabul ederdi, ancak bunlar YAML 1.2'de düz dizge olarak işlenir.
JSON
İç içe geçme için süslü ve köşeli parantez kullanır. Yorum sözdizimi yoktur. Tüm dizgeler çift tırnak içinde olmalıdır. Çok satırlı dizge literal yoktur; bunun yerine \n kaçış dizisi kullanılır. Anchor veya alias mekanizması yoktur. Boolean değerleri kesinlikle küçük harfle true ve false olmalıdır. Tüm anahtarlar tırnaklı dizge olmalıdır. Sondaki virgüller geçersizdir.

Kod Örnekleri

Aşağıda YAML'ı programatik olarak JSON'a dönüştürmek için çalışan örnekler verilmiştir. Her örnek bir YAML dizgesini ayrıştırır ve biçimlendirilmiş JSON çıktısı üretir.

JavaScript (Node.js)
import { load } from 'js-yaml'

const yamlStr = `
server:
  host: localhost
  port: 8080
  ssl: true
`

const json = JSON.stringify(load(yamlStr), null, 2)
console.log(json)
// → {
// →   "server": {
// →     "host": "localhost",
// →     "port": 8080,
// →     "ssl": true
// →   }
// → }
Python
import yaml, json

yaml_str = """
database:
  host: db.example.com
  port: 5432
  credentials:
    user: admin
    password: s3cret
"""

data = yaml.safe_load(yaml_str)
print(json.dumps(data, indent=2))
# → {
# →   "database": {
# →     "host": "db.example.com",
# →     "port": 5432,
# →     "credentials": {
# →       "user": "admin",
# →       "password": "s3cret"
# →     }
# →   }
# → }
Go
package main

import (
	"encoding/json"
	"fmt"
	"log"
	"gopkg.in/yaml.v3"
)

func main() {
	yamlData := []byte(`
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
`)

	var obj map[string]interface{}
	if err := yaml.Unmarshal(yamlData, &obj); err != nil {
		log.Fatal(err)
	}
	jsonBytes, _ := json.MarshalIndent(obj, "", "  ")
	fmt.Println(string(jsonBytes))
	// → { "services": { "web": { "image": "nginx:latest", "ports": ["80:80"] } } }
}
CLI (yq + jq)
# Convert a YAML file to JSON with yq
yq -o=json config.yaml > config.json

# Pipe YAML into yq for one-off conversion
echo "name: demo" | yq -o=json
# → { "name": "demo" }

# Python one-liner (no extra install on most systems)
python3 -c "import yaml, json, sys; print(json.dumps(yaml.safe_load(sys.stdin), indent=2))" < config.yaml

Sıkça Sorulan Sorular

YAML, JSON'un üst kümesi midir?
Evet, YAML 1.2 itibarıyla (2009'da yayımlandı). Her geçerli JSON belgesi aynı zamanda geçerli bir YAML belgesidir. YAML spesifikasyonu tam JSON uyumluluğunu sağlamak amacıyla kasıtlı olarak güncellenmiştir. Ancak tersi doğru değildir — yorumlar, anchor'lar ve tırnaksız anahtarlar gibi YAML özellikleri JSON'da karşılığı olmayan yapılardır.
Dönüşüm sırasında YAML yorumlarına ne olur?
Yorumlar atılır. JSON'da yorum sözdizimi olmadığından, YAML girişinizde # ile başlayan satırlar dönüşüm sırasında kaybolur. Yorumları korumak istiyorsanız, özgün YAML dosyasını kaynak olarak saklayın ve gerektiğinde JSON'u ondan oluşturun.
YAML anchor ve alias'ları nasıl işlenir?
Anchor (&ad) ve alias'lar (*ad) ayrıştırma sırasında çözümlenir. Alias, anchor'lı verinin tam bir kopyasıyla değiştirilir. Elde edilen JSON hiçbir referans içermez; tüm değerler satır içi olarak genişletilir. Birleştirme anahtarları (<<: *ad) aynı şekilde çözümlenir.
YAML'dan JSON'a dönüşüm veri kaybına yol açabilir mi?
Veri değerleri için hayır. Tüm YAML skaler türlerinin (dizgeler, sayılar, boolean'lar, null) doğrudan JSON karşılıkları vardır. Kaybedilenler: yorumlar, etiket yönergeleri, anchor adları ve blok ile akış stili arasındaki ayrım. YAML'ınız özel etiketler kullanıyorsa (!!python/object, !!timestamp gibi), bunlar düz değerlere çözümlenir ya da ayrıştırıcıya bağlı olarak ayrıştırma hatasına neden olabilir.
YAML'daki 'yes' boolean'ı neden JSON'da dizgeye dönüşür?
Bu araç, YAML 1.2 boolean çözümlemesini izleyen js-yaml v4 kullanır. Yalnızca true ve false (büyük/küçük harf fark etmeksizin) boolean olarak tanınır. yes, no, on ve off gibi değerler düz dizge olarak işlenir ve JSON çıktısında tırnaklı dizge olarak görünür. Boolean beklediğiniz yerde beklenmedik dizge değerleri görüyorsanız, YAML kaynağınızda true veya false kullanmaya geçin.
Bu araç maksimum ne boyutundaki YAML dosyalarını işleyebilir?
Araç tarayıcınızda çalıştığından sınır, cihazınızın kullanılabilir belleğine bağlıdır. Uygulamada birkaç megabayta kadar olan dosyalar sorunsuz dönüşür. Çok büyük dosyalar (50MB+) için, verileri belleğe tamamen yüklemek yerine akış olarak işleyebildiğinden yq gibi bir CLI aracı veya PyYAML içeren bir Python betiği daha güvenilir olacaktır.
Çok satırlı YAML dizgeleri JSON'a nasıl dönüşür?
YAML'ın iki çok satırlı blok skalar stili vardır. Literal bloklar (|), satır sonlarını JSON dizgesinde \n karakterleri olarak korur. Folded bloklar (>), tek satır sonlarını boşluklarla değiştirerek birden fazla satırı tek bir paragrafa dönüştürür. Her iki stil de varsayılan olarak sonda bir satır sonu ekler; bunu kırpma göstergesiyle (|- veya >-) kaldırabilirsiniz.