UltKit

JSON'dan YAML'a Dönüştürücü

JSON'u insanların okuyabileceği, inceleyebileceği ve yorum ekleyebileceği YAML'a dönüştürün. .json dosyalarını yükleyin; aynı anahtarlar, değerler ve sırayla girintili, depoya doğrudan eklenmeye hazır .yaml dosyaları alın.

Veri Dönüştürücü

veya CSV, TSV, TXT … dosyaları buraya bırakın ·

Dosya başına en fazla 95 MB· En fazla 20 dosya· 30 dakika sonra silinir

Çıktı

Dosyalar sunucularımızda işlenir ve 30 dakika sonra silinir.

Bu aracı nasıl kullanırsınız

  1. 1

    JSON dosyalarını ekleyin

    API yanıtlarını, dışa aktarılmış ayarları veya oluşturulmuş manifest dosyalarını .json olarak yükleyin; en fazla 20 dosya, her biri en çok 95 MB olabilir. Her dosya geçerli tek bir JSON değeri içermelidir.

  2. 2

    Varsayılan ayarları değiştirmeyin

    Dönüştürülecek biçim altında YAML zaten seçili. Bir yapılandırma dosyası için başka bir şeyi değiştirmenize gerek yok; çıktı iki boşluklu girinti kullanır.

  3. 3

    Dönüştürün ve commit edin

    YAML biçimine Dönüştür → düğmesine basın, .yaml dosyalarını indirin, sonraki okuyucunun ihtiyaç duyacağı yerlere yorum ekleyin ve commit edin.

Yanıt

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

.json dosyasını yükleyin ve YAML biçimine Dönüştür → düğmesine basın. Nesneler girintili anahtar: değer bloklarına, diziler tireli listelere dönüşür; YAML'ın yanlış okuyabileceği dizeler tırnaklarını korur.

Yapılandırma dosyaları için JSON neden YAML'a dönüştürülür?

JSON'un çoğunu yazılımlar üretir: bir API yanıtı, bir ayar dışa aktarımı, bir oluşturucunun çıktısı. YAML'ın çoğunu ise insanlar sürdürür. Dönüştürme genellikle verinin makine çıktısı olmaktan çıkıp bir ekibin sahiplendiği bir şeye dönüştüğü anı işaretler: Git'e eklenmiş bir dağıtım manifesti, bir CI hattı ya da bir dizi Ansible değişkeni gibi.

Tipik bir durum: bir bulut API'sini çağırıyorsunuz, bir kaynağın 200 satırlık JSON tanımı geliyor ve bunu altyapı kodu olarak saklamak istiyorsunuz. Dönüştürme size süslü parantezsiz ve virgülsüz bir dosya verir; tek satırlık bir değişiklik tek satırlık bir fark üretir ve garip değerleri yorumlarla açıklayabilirsiniz. Aynısı test verileri ve geliştirici olmayanların düzenlediği çeviri dosyaları için de geçerlidir. Bunun yerine bir elektronik tablo veya rapor için düz bir tabloya ihtiyacınız varsa JSON'dan CSV'ye dönüştürme daha uygundur.

Yapılandırma dosyaları YAML olan araçlar

Dönüştürülen YAML genellikle nerede kullanılır?
KurumGereksinimKaynak
GitHub Actionsİş akışları .github/workflows klasöründe .yml veya .yaml dosyaları olarak bulunurGitHub Docs
GitLab CI/CDİş hattı, deponun kök dizinindeki .gitlab-ci.yml dosyasında tanımlanırGitLab Docs
Docker ComposeServisler compose.yaml dosyasında tanımlanır (eski adı docker-compose.yml)Docker Docs
AnsiblePlaybook'lar ve değişken dosyaları YAML ile yazılırAnsible Docs
KubernetesManifestolar JSON veya YAML kabul eder; dokümantasyon ve Helm şablonları YAML kullanırKubernetes

Zorlu değerlerle JSON'dan YAML'a dönüştürme örneği

{"name":"api","version":"1.10","debug":false,"tags":["web","eu"],"country":"NO"} için YAML çıktısı
name: api
version: "1.10"
debug: false
tags:
  - web
  - tr
country: "NO"   # tırnaksız NO, YAML 1.1'de false olur

YAML'ın sağladıkları

  • # ile yorum satırları
  • Kod incelemesinde daha kısa farklar
  • Çoğu satırda süslü parantez, virgül ve tırnak yok
  • | blok skalerleriyle çok satırlı metin

Dikkat edilecekler

  • Girinti anlam taşır, bu yüzden fazladan bir boşluk yapıyı değiştirir
  • Girintide sekme kullanılamaz
  • Tırnaksız dizeler sayı veya boolean olarak okunabilir
  • JSON'dan daha yavaş ve daha az tutarlı ayrıştırıcılar

Örnek, süslü parantezleri düz bul-değiştir ile temizlemenin neden yetmediğini gösteriyor. 1.10 sürümü JSON'da bir dizedir; YAML'da çıplak yazılırsa 1.1 sayısı olarak okunur. Norveç'in ISO kodu olan NO, PyYAML gibi YAML 1.1 ayrıştırıcılarında false olarak okunur. İkisi de tırnaklarını korur; gerçek sayılar ve boolean değerler ise çıplak kalır.

JSON ve YAML karşılaştırması

JSON

JavaScript Nesne Gösterimi (JSON)

JSON, yapılandırılmış veriler için hafif bir metin biçimidir; 2000'lerin başında Douglas Crockford tarafından yaygınlaştırılmış ve RFC 8259 ile ECMA-404 olarak standartlaştırılmıştır. Nesneleri, dizileri, dizgileri, sayıları, mantıksal değerleri ve null'ı basit, okunabilir bir sözdizimiyle gösterir. Web API'leri, yapılandırma dosyaları ve neredeyse her programlama dilindeki uygulamalar arasında veri alışverişi için varsayılan biçimdir. Yorum, tarih veya şema desteği yoktur; büyük iç içe dosyaları bir görüntüleyici olmadan okumak zordur.

Sıkıştırma
–
Saydamlık
–
Animasyon
–
Çıkış yılı
2001 · Douglas Crockford
JSON dönüştürücü

YAML

YAML

YAML ("YAML Ain't Markup Language"), ilk kez 2001'de yayımlanan, insan dostu bir veri biçimidir. Parantez yerine girinti kullanır, yorumları destekler ve JSON'un üst kümesidir. Docker Compose, Kubernetes, GitHub Actions ve birçok uygulamada yapılandırma için yaygın kullanılır. Boşluklara dayanması, yanlış yerleştirilmiş tek bir boşlukla bozulmasını kolaylaştırır; "no" veya tarihler gibi bazı değerler de beklenmedik biçimde yorumlanabilir.

Sıkıştırma
–
Saydamlık
–
Animasyon
–
Çıkış yılı
2001 · Clark Evans, Ingy döt Net, Oren Ben-Kiki
YAML dönüştürücü

Üretilmiş veya API kaynaklı verinin, insanların bakımını yaptığı, pull request'lerde incelediği ve yorumlarla not düştüğü bir yapılandırma dosyasına dönüşmesi gerektiğinde JSON YAML'a dönüştürülür.

JSON'dan YAML'a dönüştürücü hakkında sorular

JSON zaten geçerli bir YAML mıdır?

YAML 1.2'de evet: 2009 sürümü, her JSON belgesinin aynı zamanda geçerli bir YAML belgesi olacağı şekilde yazıldı. JSON'u bir .yaml dosyasına yapıştırabilirsiniz ve çoğu araç bunu kabul eder. Dönüştürmenin amacı okunabilirliktir: gözden geçirenlerin ve bir sonraki bakımcının beklediği şey süslü parantez, tırnak ve virgül içermeyen blok biçimidir.

YAML'da bazı değerler neden tırnak içinde?

Çünkü tırnak olmadan YAML bunları farklı bir tür olarak okur. 1.10 gibi bir sürüm dizesi 1.1 sayısına dönüşür, yes veya off de eski ayrıştırıcılarda boolean olabilir. Sayıya, tarihe ya da boolean'a benzeyen dizelerin metin olarak kalması için tırnak gerekir; bu yüzden dikkatli bir dönüştürme tırnakları korur.

Dönüştürdükten sonra yorum ekleyebilir miyim?

Evet, dönüştürmenin yaygın nedenlerinden biri de bu. Bir satırın sonuna ya da kendi satırına # ve ardından notunuzu yazın. JSON'da bir değerin neden öyle ayarlandığını açıklamanın yolu yoktu; YAML'da var, bu da inceleme ve devir işlerini kolaylaştırır.

YAML dosyam neden sekme karakteri hatası veriyor?

YAML belirtimi girinti için sekmeyi yasaklar; yalnızca boşluklar geçerlidir. Dönüştürücü boşluk yazar, ancak sekme ekleyecek şekilde ayarlı bir düzenleyici sonraki düzenlemede dosyayı bozabilir. Düzenleyicinizi .yaml dosyaları için boşluk kullanacak şekilde ayarlayın.

Kubernetes dönüştürülen manifest dosyasını kabul eder mi?

kubectl hem JSON hem YAML okur, yani veri her iki durumda da aynıdır; YAML sürümü yalnızca çoğu dokümantasyonun, Helm şablonunun ve kod incelemesinin kullandığı biçimdir. Daha sonra jq veya bir API çağrısı için JSON'a ihtiyaç duyarsanız YAML'den JSON'a dönüştürme bunu tersine çevirir.