YAML yapılandırma dosyalarını JSON'a dönüştürün. Bağlantıları, takma adları çözümler, sözdizimini doğrular ve geçerli JSON çıktısı üretir. Ücretsiz.
Örnek YAML’ı dönüştürmek şu çıktıyı üretir:
{
"server": {
"host": "0.0.0.0",
"port": 8080,
"ssl": true
},
"database": {
"url": "postgresql://localhost:5432/myapp",
"pool_size": 10,
"timeout": 30
},
"logging": {
"level": "info",
"format": "json",
"outputs": [
"stdout",
"file"
]
}
}
Girinti hiyerarşisi iç içe JSON nesnelerine dönüşür. YAML dizileri JSON dizileri olur. Boolean veya sayı olmayan tırnaksız YAML stringleri JSON stringi olur.
Çoğu YAML, bilgi kaybı olmadan JSON’a temiz bir şekilde dönüşür:
| YAML türü | JSON karşılığı |
|---|---|
Mapping (key: value) |
Object ({"key": "value"}) |
Sequence (- item) |
Array (["item"]) |
| String | String |
| Integer | Number |
| Float | Number |
Boolean (true/false) |
Boolean |
Null (null, ~, boş) |
null |
Tipik bir Kubernetes manifesti veya Docker Compose dosyası için dönüştürme, veri perspektifinden kayıpsızdır.
YAML yorumları (# ile başlayan satırlar veya satır içi # yorum ekleri) tamamen atılır. JSON’da yorum sözdizimi yoktur. YAML yapılandırmanız alanları belgelemek için yorum kullanıyorsa, bu açıklamalar JSON çıktısında kaybolur. Bunun için yorumları ayrı bir şemaya veya README’ye taşımaktan başka çözüm yoktur.
YAML, yeniden kullanılabilir bir bloğu bağlantı ile tanımlamanıza ve başka bir yerde takma ad ile referans vermenize izin verir:
defaults: &defaults
timeout: 30
retries: 3
production:
<<: *defaults
host: prod.example.com
staging:
<<: *defaults
host: staging.example.com
JSON çıktısında *defaults hem production hem de staging içinde tamamen genişletilir. Bağlantı notasyonu kaybolur ve paylaşılan değerler çoğaltılır:
{
"defaults": { "timeout": 30, "retries": 3 },
"production": { "timeout": 30, "retries": 3, "host": "prod.example.com" },
"staging": { "timeout": 30, "retries": 3, "host": "staging.example.com" }
}
!!binary, !!timestamp ve !!python/object gibi etiketler YAML’a özgü tip ek açıklamalarıdır. Çoğu dönüştürücü değeri string’e dönüştürür veya hata verir. 2024-01-15 gibi !!timestamp değerleri, kütüphaneye bağlı olarak string, sayı (Unix epoch) olabilir veya hataya neden olabilir.
Kubernetes kaynakları dahili olarak JSON olarak saklar ve REST API’si JSON kabul eder. Kubernetes API’sini doğrudan çağırırken (kubectl kullanmak yerine) JSON’a ihtiyacınız vardır. Manifestiniz YAML ise önce dönüştürün:
# kubectl sizin için dönüştürebilir
kubectl apply -f deployment.yaml --dry-run=client -o json
Veya betik boru hatları için özel bir araç kullanın.
Node.js’de yerleşik YAML ayrıştırıcısı yoktur. Bazı ekipler, YAML bağımlılığı eklemek yerine yapılandırmayı JSON olarak saklar. Derleme zamanında bir kez dönüştürmek veya JSON’ı YAML’ın yanında depolamak basit durumlar için pratik bir seçenektir.
JSON’ın açık parantez ve tırnakları yapıyı belirsiz hale getirir. YAML’ın girintisi aldatıcı olabilir: yanlış yerleştirilmiş bir boşluk, bir anahtarın hangi bloğa ait olduğunu değiştirir. JSON’a dönüştürmek ve yapıyı kontrol etmek, YAML’ınızın gerçekten düşündüğünüz gibi ayrıştırılıp ayrıştırılmadığını doğrulamanın hızlı bir yoludur. Bu, özellikle girinti hatalarının kafa karıştırıcı davranışlara neden olduğu Helm chart değerlerinde veya GitHub Actions iş akışı dosyalarında hata ayıklarken kullanışlıdır.
Nothing you paste leaves this tab. Every tool runs entirely in your browser — no upload, no server, no account.