İçeriğe geç

YAML'den JSON Biçimine Dönüştürme

yaml kütüphanesiyle tek bir YAML belgesini (YAML 1.2 çekirdek şeması) ayrıştırır ve girintili JSON üretir. Yorumlar kaldırılır, çapalar ve takma adlar açılır; yes veya 2024-01-01 gibi değerler dize kalır.

YAML ile yazılan ayarları yalnızca JSON kabul eden bir API'ye veya JSON Schema doğrulayıcısına göndermek.

YAML

Ne zaman kullanılır?

  • YAML ile yazılan ayarları yalnızca JSON kabul eden bir API'ye veya JSON Schema doğrulayıcısına göndermek.
  • CI veya Kubernetes dosyasındaki değerlerin gerçek türünü, örneğin sürümün dize mi sayı mı olduğunu kontrol etmek.

Nasıl kullanılır?

  1. Tek bir YAML belgesi yapıştırın veya .yaml/.yml dosyası yükleyin.
  2. Hata görünürse bildirilen satırdaki girintiyi, yinelenen anahtarları ve --- ayırıcılarını kontrol edin.
  3. JSON çıktısındaki dizeleri ve sayıları inceleyip kopyalayın.

YAML girdisi

# deployment settings
service: billing-api
replicas: 2
version: "1.10"
enabled: yes
ports:
  - 80
  - 443
env:
  LOG_LEVEL: info

JSON

{
  "service": "billing-api",
  "replicas": 2,
  "version": "1.10",
  "enabled": "yes",
  "ports": [
    80,
    443
  ],
  "env": {
    "LOG_LEVEL": "info"
  }
}

Ayrıntılar ve sınırlamalar

Ayrıştırma tarayıcıda yapılır. Çıktı her zaman 2 boşluk girintili JSON'dur; küçültme seçeneği yoktur.

YAML 1.2 kuralları geçerlidir: yes/no/on/off mantıksal değer değil dizedir; tırnaksız tarihler de dize kalır. 0o17 sekizliktir (15).

Birleştirme anahtarları (<<: *anchor) uygulanmaz; gerçek bir "<<" anahtarı olarak görünür. Aynı eşlemedeki yinelenen anahtarlar hata oluşturur.

2^53 sınırını aşan tam sayılar JSON'da hassasiyet kaybeder. Uzun kimlikleri YAML içinde tırnakla yazın.

FAQ

--- ile ayrılmış birden fazla belge içeren dosyayı dönüştürebilir mi?

Hayır. Birden fazla belge "Source contains multiple documents" hatasına yol açar. Her seferinde tek belge yapıştırın. Başta tek bir --- bulunabilir.

enabled: yes neden JSON'da dize oluyor?

Ayrıştırıcı YAML 1.2'yi izler; yalnızca true ve false mantıksal değerdir. JSON mantıksal değeri için true/false yazın.

Çapalar ve takma adlar destekleniyor mu?

Evet. *base gibi bir takma ad, çapalı değerin kopyasıyla değiştirilir. Ancak YAML 1.1 birleştirme anahtarı << uygulanmaz.

Teknik özellikler ve kaynaklar