YAML ke JSON

YAML lebih enak ditulis manual, JSON lebih enak dikonsumsi secara programatik, dan banyak tool modern (pipeline CI, Kubernetes, Ansible) menerima keduanya. Saat Anda perlu menempel konfigurasi ke tool yang bersikukuh memakai JSON, definisi API Gateway, template CloudFormation, beberapa body webhook, konverter ini melakukan round trip-nya. Anchor, merge, dan tipe khusus YAML (tanggal, oktal, null, ~) semuanya dinormalisasi menjadi padanan JSON.

Cara mengonversi YAML ke JSON

  1. 1

    Tempel YAML

    Dokumen YAML 1.1 atau 1.2 valid apa pun.

  2. 2

    Resolve anchor

    Anchor (`&x`) dan alias (`*x`) diperluas inline. Merge key (`<<`) diratakan.

  3. 3

    Normalisasi tipe

    Tanggal, nilai null, boolean semuanya dikonversi menjadi padanan JSON.

  4. 4

    Output JSON

    Pretty-print atau minified, sesuai pilihan Anda.

Contoh konversi

YAML:

defaults: &defaults
  timeout: 30
  retries: 3

production:
  <<: *defaults
  host: prod.example.com
  debug: false

staging:
  <<: *defaults
  host: staging.example.com
  debug: true

JSON (anchor di-resolve):

{
  "defaults": {
    "timeout": 30,
    "retries": 3
  },
  "production": {
    "timeout": 30,
    "retries": 3,
    "host": "prod.example.com",
    "debug": false
  },
  "staging": {
    "timeout": 30,
    "retries": 3,
    "host": "staging.example.com",
    "debug": true
  }
}

Pemetaan tipe

YAML JSON
Teks Teks
Bilangan bulat Angka
Bilangan desimal Angka
Boolean (true, false) Boolean
Null (null, ~, kosong) null
Stempel waktu Teks ISO 8601
Urutan (list) Larik
Pemetaan Objek

Hal khusus YAML yang tidak bisa direpresentasikan JSON

  • Komentar. JSON tidak punya sintaks komentar standar. Komentar dibuang.
  • Stream multi-dokumen (pemisah ---). JSON adalah satu dokumen per file; konverter menampilkan array dokumen saat ada beberapa.
  • Anchor dan alias. Di-resolve dan diduplikasi inline.
  • Key kompleks (key mapping non-string). Key JSON harus berupa string; key kompleks distringifikasi.

Jebakan 1.1 vs 1.2

  • YAML 1.1 memparse yes, no, on, off, y, n sebagai boolean. NO sebagai kode negara diam-diam menjadi false.
  • YAML 1.2 membatasi boolean ke true dan false. Lebih aman tetapi banyak parser (termasuk default PyYAML) masih memakai 1.1.

Konverter default ke semantik 1.2 dan memperingatkan saat 1.1 akan mengubah hasilnya.

Round trip dari JSON kembali ke YAML

JSON ke YAML biasanya lossless (JSON adalah subset dari sintaks YAML 1.2). YAML ke JSON bersifat lossy: komentar dan struktur merge-key hilang. Jika Anda berencana round trip, pertahankan YAML asli di version control.

Pertanyaan yang Sering Diajukan

Tidak, semua itu punya templating sendiri yang berjalan sebelum parsing YAML. Render template dulu (dengan kustomize build atau helm template), lalu umpankan outputnya ke sini.

Timestamp YAML menjadi string ISO 8601 di JSON. 2026-04-18 menjadi "2026-04-18". Waktu dan zona waktu dipertahankan.

Batas praktis di browser sekitar 10 MB. Untuk file lebih besar, gunakan yq atau python -c "import yaml, json; print(json.dumps(yaml.safe_load(open(file))))" di command line.

Tidak. Konversi berjalan di browser Anda dan tidak ada yang dikirim.

Alat Terkait

Alat ini tersedia dalam bahasa lain