Açık araçlar · 0

Hakkında

YAML’dan JSON’a

Bir Kubernetes manifestinden, bir Compose dosyasından ya da bir CI pipeline’ından YAML yapıştırın; JSON siz yazdıkça yazılır. Anchor’lar ve merge key’ler temsil ettikleri değerlere açılır, birden çok belge tek bir dizi olur ve girinti için kullanılan bir sekme gibi bir hata satırı ve sütunuyla gösterilir.

Neler yapar

  • Bir alias, örneğin *base, göründüğü her yerde tam olarak yazılır, çünkü JSON başka bir değeri gösteremez.
  • Bir merge key (<<), anahtarlarını bulunduğu yere getirir; map’in kendisinde yazılmış bir anahtar kazanır.
  • Birbirinden --- ile ayrılmış belgeler sırasıyla tek bir JSON dizisi olur ve bir not kaç tane olduğunu söyler.
  • Blok metin, | işaretinden sonra satır sonlarını korur, > işaretinden sonra ise satır sonları boşluğa katlanır.
  • JSON’un yazamadığı sayılar yeniden yazılır ve bu söylenir: 0x1F 31, .5 0.5 olur, .inf ise metne dönüşür.
  • Sayı ya da boolean olan anahtarlar metne dönüşür; JSON’daki tek anahtar türü budur.
  • Yorumlar atılır, çünkü JSON’da onlar için bir söz dizimi yoktur; özet kaç tane olduğunu söyler.

Nasıl kullanılır

  1. YAML’ı yapıştırın ya da .yaml veya .yml dosyasını bırakın.
  2. Girintiyi seçin ya da en kompakt JSON için Tek satır’ı seçin.
  3. Nelerin açıldığını, yeniden yazıldığını ya da atıldığını anlatan notları okuyun.
  4. JSON’u kopyalayın ya da indirin.

Neleri yapmaz

  • CloudFormation’ın kısa etiketleri (!Ref, !GetAtt, !Sub): yalnızca CloudFormation için bir anlam taşırlar, bu yüzden her biri bir notla dışarıda bırakılır; AWS’nin kendi JSON’u ise {"Ref": ...} yazardı.
  • Bir map’te iki kez yazılmış anahtar: YAML buna izin vermez, bu yüzden ikisinden biri seçilmez, dosya ikincisinde reddedilir.
  • Girinti için sekme: YAML orada yalnızca boşluğa izin verir, bu yüzden okuma, derinliğini tahmin etmek yerine o satırda durur.

Sorular

GitHub Actions iş akışımdaki on: neden işaretleniyor?

Çünkü PyYAML ve diğer YAML 1.1 okuyucuları tırnaksız bir on’u true sayar; bu yüzden iş akışını okuyan bir Python script’i anahtarı True görür. GitHub onu sözcük olarak okur, iş akışı bu yüzden çalışır. JSON’da "on" vardır, yani YAML 1.2 okuması.

JSON birden çok belge taşıyabilir mi?

Hayır, bir JSON dosyası tek bir değerdir; bu yüzden çok belgeli bir YAML dosyasının belgeleri tek bir dizinin öğeleri olur. Bir Deployment ve bir Service içeren Kubernetes dosyası, iki nesnelik bir dizi verir.

Anahtarların sırası korunur mu?

Evet, YAML’daki gibi; birleştirilen anahtarlar << yerinde durur. Bunun yerine A’dan Z’ye için Anahtarları sırala’yı işaretleyin; iki JSON dosyası böylece karşılaştırmaya daha uygun olur.

2024-01-01 neden tarih değil de metin?

JSON’da tarih türü yoktur ve YAML 1.2 zaten tırnaksız bir tarihi metin olarak okur. Bir YAML 1.1 okuyucusu onu tarih yapardı; bu yüzden değer, satırıyla birlikte işaretlenir.

Buradaki her şey tarayıcınızda çalışır. Yazdığınız, yapıştırdığınız ya da açtığınız hiçbir şey yüklenmez; hesap da sıra da yoktur. Bu nasıl oluyor.

Sık birlikte kullanılanlar

Çeviriciler klasöründe diğerleri

  • Birim Çevirici: Uzunluk, ağırlık, sıcaklık, hacim, alan, hız, veri boyutu ve dokuz büyüklük daha, iki yönde ve formülüyle.
  • Base64 Kodlama ve Çözme: Metni ya da dosyayı Base64’e kodlayın, Base64’ü geri çözün: URL-safe alfabe, MIME satır sonları, data URI ve önizlenen resimler.
  • CSV Görüntüleyici ve Düzenleyici: Bir CSV, Excel ya da JSON dosyasını tablo olarak açın, düzenleyin (boşluklar, tekrarlar, bozuk harfler, tarihler ve sayılar) ve CSV, .xlsx ya da JSON olarak kaydedin.

Bütün araçlarutilbrew hakkındaGizlilik