DokumenGambarMediaAlat PDF

Konversi YAML ke JSON Online

Konversi YAML ke JSON di browser Anda. Sempurna untuk memvalidasi konfigurasi Docker, Kubernetes, atau GitHub Actions.

{
  "name": "John Doe",
  "age": 30,
  "active": true,
  "tags": [
    "developer",
    "javascript"
  ],
  "address": {
    "city": "Madrid",
    "zip": "28001"
  }
}
Processed in your browser

YAML ke JSON: validasi konfigurasi DevOps secara instan

Docker dan Kubernetes

Konversi docker-compose.yml atau manifes Kubernetes ke JSON untuk memvalidasi struktur atau digunakan dengan alat yang hanya menerima JSON.

Debug CI/CD

Validasi workflow GitHub Actions, pipeline GitLab CI, atau playbook Ansible dengan mengonversi ke JSON untuk melihat struktur yang diurai.

100% privat

Konfigurasi YAML Anda diproses di browser Anda. Tidak pernah meninggalkan perangkat Anda. Ideal untuk konfigurasi yang mengandung rahasia.

Deteksi kesalahan

Kesalahan sintaks YAML (indentasi, tab, tipe tidak valid) ditampilkan dengan jelas sebelum konversi.

Tiga langkah, tanpa kerumitan

1

Tempel YAML Anda

Tempel file YAML Anda: docker-compose.yml, deployment Kubernetes, workflow GitHub Actions, atau konfigurasi YAML apa pun.

2

Konversi dan validasi

Konverter mengurai YAML sesuai spesifikasi YAML 1.2 dan menghasilkan JSON yang valid secara instan, menampilkan kesalahan sintaks jika ada yang ditemukan.

3

Salin JSON yang dihasilkan

Salin JSON yang terformat untuk digunakan di API, alat konfigurasi, atau untuk memvalidasi struktur YAML Anda.

Ada pertanyaan?

YAML (YAML Ain't Markup Language, akronim rekursif) adalah bahasa serialisasi data yang dapat dibaca manusia. Spesifikasi YAML 1.2 diterbitkan pada Juli 2009 di yaml.org dan merupakan superset JSON: semua JSON valid juga merupakan YAML valid. YAML banyak digunakan dalam konfigurasi alat DevOps (Docker Compose, Kubernetes, Ansible, Terraform, GitHub Actions, GitLab CI) karena sintaksis berbasis indentasinya lebih mudah dibaca daripada JSON untuk konfigurasi panjang dan hierarkis. Tidak seperti JSON, YAML mendukung komentar, string multi-baris, anchor dan alias untuk penggunaan ulang data, dan tipe data tambahan seperti tanggal ISO 8601.

YAML menawarkan dua gaya string multi-baris. Gaya literal (ditandai dengan |) mempertahankan jeda baris persis seperti yang ditulis - berguna untuk skrip shell, konten file, atau teks terformat. Gaya terlipat (ditandai dengan >) mengonversi jeda baris menjadi spasi dan hanya mempertahankan jeda paragraf - berguna untuk deskripsi panjang. Dalam JSON, keduanya menjadi string dengan karakter jeda baris untuk gaya literal atau tanpa jeda untuk gaya terlipat.

Ya. Anchor YAML (&nama) dan alias (*nama) adalah cara untuk menggunakan ulang node dalam dokumen. Dalam docker-compose.yml, umum untuk mendefinisikan variabel lingkungan bersama sebagai anchor dan mereferensikannya di beberapa layanan dengan kunci merge. Konverter kami memperluas semua anchor dan alias sebelum menghasilkan JSON, menghasilkan struktur lengkap tanpa referensi - perilaku yang benar karena JSON tidak memiliki padanan untuk anchor YAML.

Tidak. JSON (RFC 7159/RFC 8259) tidak mendukung komentar. Komentar YAML (teks setelah # hingga akhir baris) dibuang selama penguraian. Ini adalah batasan fundamental dari format JSON, bukan dari konverter. Jika Anda perlu mempertahankan dokumentasi yang terkait dengan field konfigurasi, pertimbangkan menggunakan JSON Schema atau mempertahankan YAML asli sebagai sumber kebenaran.

YAML menggunakan spasi (bukan tab) untuk indentasi guna menunjukkan hierarki. Spesifikasi YAML 1.2 tidak menetapkan jumlah spasi tertentu, tetapi konvensi yang paling umum adalah 2 spasi. Konsistensi dalam level hierarki yang sama sangat penting. Mencampur tab dan spasi adalah kesalahan sintaks dalam YAML. Kesalahan paling umum adalah secara tidak sengaja mencampur tab dengan spasi, terutama saat mengedit YAML di editor yang memperluas tab secara berbeda.

Ya. Manifes Kubernetes (Deployment, Service, ConfigMap, Ingress) dan file docker-compose.yml adalah YAML standar dan dikonversi dengan benar ke JSON. Ini berguna untuk memvalidasi struktur manifes, meneruskannya ke alat yang hanya menerima JSON, atau men-debug perilaku tak terduga yang disebabkan oleh kesalahan YAML yang halus. API Kubernetes menerima YAML dan JSON; secara internal, kubectl mengonversi YAML ke JSON sebelum mengirim permintaan ke server API.

Konversi YAML ke JSON: validasi konfigurasi DevOps dan Kubernetes di browser

YAML (YAML Ain't Markup Language) telah menjadi format konfigurasi yang dominan dalam ekosistem DevOps modern. Docker Compose (diperkenalkan pada 2014), Kubernetes (API-nya telah menerima manifes dalam YAML atau JSON sejak diluncurkan oleh Google pada 2014), GitHub Actions (diluncurkan November 2019), GitLab CI/CD, Ansible (Red Hat, 2012), Terraform (HashiCorp, 2014), dan chart Helm semuanya menggunakan YAML sebagai format konfigurasi utama mereka. Spesifikasi YAML 1.2, diterbitkan di yaml.org pada Juli 2009, menetapkan bahwa YAML adalah superset ketat dari JSON, yang berarti dokumen JSON apa pun juga merupakan dokumen YAML yang valid. Hubungan ini membuat konversi antara kedua format menjadi sempurna secara semantis: tidak ada kehilangan informasi struktural, hanya perbedaan representasi.

Mengonversi YAML ke JSON sangat berguna dalam beberapa alur kerja DevOps: men-debug pipeline CI/CD di mana kesalahan indentasi menghasilkan perilaku tak terduga (representasi JSON membuat struktur menjadi eksplisit dan tidak ambigu); menggunakan alat yang hanya menerima JSON sebagai input; memigrasikan konfigurasi antara alat yang menggunakan format berbeda; dan memvalidasi bahwa YAML diurai sesuai yang diharapkan, terutama saat menggunakan fitur lanjutan seperti anchor, alias, kunci merge, tipe eksplisit, atau string multi-baris.

Penguraian YAML memiliki beberapa tantangan yang dikenal yang mengarah pada masalah 'Norway Problem': dalam YAML 1.1, nilai 'NO' diinterpretasikan sebagai boolean false, menyebabkan kode negara Norwegia ('NO') diurai secara tidak benar. YAML 1.2 (spesifikasi Juli 2009) memperbaiki hal ini: hanya 'true' dan 'false' (tidak peka huruf besar/kecil) yang merupakan boolean, dan nilai seperti 'yes', 'no', 'on', 'off' yang YAML 1.1 perlakukan sebagai boolean kini menjadi string. Konverter kami menggunakan library yang mengimplementasikan YAML 1.2, menjamin perilaku yang benar dan modern. Untuk proyek yang menggunakan PyYAML, memperbarui ke versi 6.0+ (dirilis Maret 2022) penting karena menambahkan dukungan safe loader yang sesuai YAML 1.2.