İçeriğe atla

JSON ↔ YAML Dönüştürücü

JSON ↔ YAML Dönüştürücü

JSON ve YAML'ı yan yana düzenleyin, bir taraftaki değişiklikler anında diğer tarafa senkronize edilir. Girinti ayarı, anahtar sıralama ve çok belgeli YAML bölme desteği. Kubernetes/Helm/CI yapılandırmaları ve API hata ayıklaması için kullanışlıdır.

JSON ↔ YAML Dönüştürücü

🚀 Hızlı başlangıç

  • Soldaki düzenleyiciye JSON'u, sağdaki düzenleyiciye ise YAML'yi otomatik olarak yapıştırın veya yazın.
  • Ayrıca sağa YAML ve sol tarafa JSON yazdığınızda otomatik olarak güncellenir.
  • Senkronizasyon tamamen çift yönlüdür. Mod değiştirmeye gerek yoktur: her iki tarafı da düzenleyin, diğer taraf anında güncellenir.
  • JSON/YAML girintisini ayarlamak, anahtar sıralamayı etkinleştirmek ve çoklu belge YAML çıktısını değiştirmek için üstteki araç çubuğunu kullanın.
  • Odağı taşımak yerine girinti eklemek için düzenleyicide Sekme tuşuna basın.
  • Her düzenleyicinin sağ üst köşesinde Kopyala ve Temizle düğmeleri bulunur. Her iki tarafı da temizlemek her iki tarafı da temizler.

📌 Yaygın kullanım senaryoları

  • Kubernetes yazma: Yapıyı her iki görünümden de incelemek için K8'in kaynak bildirimlerini YAML ve JSON arasında dönüştürün.
  • Dümen değerlerinde hata ayıklama: IDE'nizdeki türleri ve iç içe yerleştirmeyi incelemek içinvalues.yaml'yi JSON'a dönüştürün.
  • CI/CD ardışık düzenleri: GitHub Actions (YAML) ile JSON kullanan CI sistemleri arasında parçacıkları hızla dönüştürün.
  • API hata ayıklama: Daha net bir hiyerarşik görünüm için JSON veri yüklerini YAML'ye dönüştürün.
  • Yapılandırma geçişi: YAML ve JSON arasında yapılandırma dosyalarını toplu olarak dönüştürün.
  • Biçimlendirme ve doğrulama: JSON/YAML sözdizimini, satır/sütun hata konumuyla birlikte iki yönlü senkronizasyon yoluyla doğrulayın.

🧭 Kullanım tavsiyeleri

  • 2 boşluklu JSON girintisi çoğu durumda işe yarar; Derin yerleştirme veya Helm değerleri dosyaları için 4 boşluk kullanın.
  • Nesne anahtarlarını alfabetik sırada göstermek için anahtar sıralamayı etkinleştirin. Bu, yapılandırma farklarını karşılaştırmayı kolaylaştırır.
  • JSON kökü bir dizi olduğunda, her öğeyi ayrı bir belgeye (---) bölmek için Çoklu Belge YAML'yi etkinleştirin; bu, çoklu kaynak K8s dosyaları için kullanışlıdır.
  • Giriş geçersizse editör satır/sütun ayrıntılarında bir hata gösterir; diğer taraf ise son geçerli içeriğini korur.
  • Büyük içerik için önce yapıştırın ve senkronizasyonu bekleyin, ardından aşırı yeniden dönüştürmeyi önlemek için düzenlemeye devam edin.

⚠️ Sınırlamalar ve uyumluluk

  • YAML ayrıştırma, YAML 1.2 spesifikasyonunu takip eder. YAML 1.1'e özgü bazı davranışlar (örneğin, evet/hayır otomatik boole dönüşümü) farklı olabilir.
  • JSON numaraları JavaScript IEEE 754 sınırlarına uygundur. 53 bitlik güvenli hassasiyetin ötesindeki tamsayılar doğruluğu kaybedebilir.
  • YAML bağlantıları ve takma adları (&, *, <<), JSON'a dönüştürüldüğünde somut değerlere genişletilir; referanslar korunamaz.
  • JSON yorumları desteklemediğinden YAML yorumları dönüştürme sırasında bırakılır.

🔒 Gizlilik ve güvenlik

  • Tüm işlemler tarayıcınızda yerel olarak gerçekleşir. Verileriniz asla cihazınızdan ayrılmaz.

❓ Sıkça Sorulan Sorular

JSON ile YAML arasındaki fark nedir ve her birini ne zaman kullanmalıyım?

JSON ve YAML aynı veri türlerini (nesneler, diziler, dizeler, sayılar) temsil edebilir ancak sözdizimleri farklıdır: • JSON kaşlı ayraçlar/köşeli ayraçlar ve çift tırnak kullanır, daha katı bir sözdizimine sahiptir ve yorumları desteklemez. • YAML hiyerarşi için girintiyi kullanır, insanlar tarafından daha okunabilirdir ve yorumları destekler ancak boşluklara duyarlıdır. Temel kural: • API'ler ve makineler arası veri alışverişi için JSON'u tercih edin. • İnsanların sıklıkla düzenlediği Kubernetes/Helm/CI yapılandırmaları için YAML'yi tercih edin. • Veri modelini değiştirmeden bunlar arasında dönüşüm yapabilirsiniz.

YAML'de neden evet/hayır/açık/kapalı dönüşümden sonra doğru/yanlış oluyor?

Bu, evet/hayır/açık/kapalı/y/n'nin boole olarak ayrıştırılabileceği eski YAML 1.1 davranışından gelir. Bu araç, yalnızca doğru/yanlışın boole değerleri olduğu YAML 1.2'yi takip eder. Dize değerlerine ihtiyacınız varsa bunları alıntılayın (örneğin, "evet").

YAML yorumları JSON'a dönüştürüldükten sonra neden kayboluyor?

JSON (RFC 8259) yorumlara izin vermez. Yani YAML yorumları YAML→JSON dönüşümünde korunamaz ve geri dönüşüm sırasında yeniden oluşturulamaz. Yorumlar önemliyse orijinal YAML dosyasını saklayın.

YAML'da --- ne anlama geliyor?

--- birden fazla bağımsız belgeyi tek bir dosyada depolamak için kullanılan YAML'nin belge ayırıcısıdır. Bu, bir dosyanın Dağıtım, Hizmet ve ConfigMap tanımlarını içerebildiği Kubernetes'te yaygındır. Bu araç, çok belgeli YAML'yi bir JSON dizisi olarak okur ve ayrıca bir JSON dizisini tekrar ayrılmış YAML belgelerine bölebilir.

Dönüştürmeden sonra sayısal hassasiyet kaybolursa ne yapmalıyım?

JavaScript, IEEE 754 çift duyarlıklı sayıları kullanır. Güvenli tamsayılar -(2^53-1) ila 2^53-1 (±9007199254740991) arasındadır. Daha büyük tamsayılar (örneğin, Kar Tanesi Kimlikleri veya 64 bitlik zaman damgaları) hassasiyeti kaybedebilir. Tam değerleri korumak için bunları "9007199254740992" gibi dizeler halinde saklayın.

Dönüştürme sırasında YAML bağlantılarına (& ve *) ne olur?

Bağlantılar (&ad) ve takma adlar (*ad), YAML'ye özgü yeniden kullanım özellikleridir. JSON'un eşdeğer bir referans mekanizması yoktur, dolayısıyla takma adlar dönüştürme sırasında tam kopyalara genişletilir. Bu kayıplı bir dönüşümdür ve orijinal bağlantı yapısı otomatik olarak geri yüklenemez.