Lewati ke konten

Konversi Format YAML ke JSON — Numio

Mengurai satu dokumen YAML dengan pustaka yaml (skema inti YAML 1.2) dan menghasilkan JSON berindentasi. Komentar dihapus, anchor dan alias diperluas, serta nilai seperti yes atau 2024-01-01 tetap berupa string.

Mengirim pengaturan yang ditulis dalam YAML ke API atau validator JSON Schema yang hanya menerima JSON.

YAML

Kapan menggunakannya

  • Mengirim pengaturan yang ditulis dalam YAML ke API atau validator JSON Schema yang hanya menerima JSON.
  • Memeriksa tipe sebenarnya dalam file CI atau Kubernetes, misalnya apakah versi berupa string atau angka.

Cara penggunaan

  1. Tempelkan satu dokumen YAML atau muat file .yaml/.yml.
  2. Jika muncul kesalahan, periksa indentasi, kunci duplikat, dan pemisah --- pada baris yang dilaporkan.
  3. Periksa perbedaan string dan angka dalam hasil JSON, lalu salin.

Masukan YAML

# 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"
  }
}

Detail dan batasan

Penguraian berjalan di browser. Hasil selalu berupa JSON dengan indentasi 2 spasi; tidak ada opsi minifikasi.

Aturan YAML 1.2 berlaku: yes/no/on/off adalah string, bukan boolean, dan tanggal tanpa tanda petik tetap berupa string. 0o17 adalah oktal (15).

Kunci penggabungan (<<: *anchor) tidak digabungkan; kunci tersebut muncul sebagai kunci literal "<<". Kunci duplikat dalam satu pemetaan menyebabkan kesalahan.

Bilangan bulat di atas 2^53 kehilangan presisi dalam JSON. Apit ID panjang dengan tanda petik dalam YAML.

FAQ

Bisakah alat ini mengonversi file berisi beberapa dokumen yang dipisahkan oleh ---?

Tidak. Beberapa dokumen menyebabkan kesalahan "Source contains multiple documents". Tempelkan satu dokumen setiap kali. Satu --- di awal diperbolehkan.

Mengapa enabled: yes menjadi string dalam JSON?

Pengurai mengikuti YAML 1.2, yang hanya menganggap true dan false sebagai boolean. Tulis true/false jika memerlukan boolean JSON.

Apakah anchor dan alias didukung?

Ya. Alias seperti *base diganti dengan salinan nilai yang diberi anchor. Namun, kunci penggabungan << dari YAML 1.1 tidak diterapkan.

Spesifikasi dan referensi