ToolDeck

YAML to JSON

Konversi YAML ke format JSON

Coba contoh

Input YAML

Output JSON

Berjalan lokal · Aman untuk menempel rahasia
JSON akan muncul di sini…
Coba juga:YAML to XML

Apa Itu Konversi YAML ke JSON?

Konversi YAML ke JSON mengubah data yang ditulis dalam YAML (YAML Ain't Markup Language) menjadi JSON (JavaScript Object Notation). Kedua format ini merepresentasikan data terstruktur sebagai pasangan kunci-nilai, urutan, dan objek bersarang, tetapi berbeda dalam sintaks. YAML menggunakan indentasi dan tanda baca minimal, sementara JSON menggunakan kurung kurawal, kurung siku, dan tanda kutip wajib. Mengonversi antara keduanya adalah tugas yang umum ketika memindahkan data konfigurasi antar sistem yang mengharapkan format berbeda.

YAML dirancang untuk keterbacaan manusia. Format ini mendukung komentar, string multiline, anchor, dan alias — yang semuanya tidak ada dalam JSON. Ketika Anda mengonversi YAML ke JSON, fitur-fitur khusus YAML ini diselesaikan: anchor diperluas secara inline, komentar dihapus, dan blok multiline menjadi string yang di-escape. Hasilnya adalah JSON yang valid dan dapat dibaca oleh parser JSON mana pun.

Spesifikasi YAML 1.2 secara eksplisit mendefinisikan JSON sebagai subset dari YAML, yang berarti setiap dokumen JSON yang valid juga merupakan YAML yang valid. Sebaliknya tidak berlaku. Dokumen YAML yang menggunakan komentar, anchor, atau kunci kompleks tidak memiliki padanan langsung dalam JSON dan harus disederhanakan selama konversi. Alat ini menangani konversi tersebut secara otomatis, menghasilkan JSON yang bersih dan terformat dengan baik dari input YAML yang valid.

YAML 1.2 Specification — yaml.org →

Mengapa Menggunakan Konverter YAML ke JSON Online?

Mengonversi YAML ke JSON secara manual rawan kesalahan, terutama dengan struktur yang sangat bersarang atau nilai multiline. Konverter berbasis browser memberikan hasil secara instan dan menangkap kesalahan sintaks YAML sebelum mencapai aplikasi Anda.

Konversi instan di browser
Tempel YAML Anda dan dapatkan output JSON terformat dalam milidetik. Tidak ada alat CLI yang perlu diinstal, tidak ada langkah build, tidak ada dependensi yang perlu dikelola.
🔀
Menangani struktur YAML apa pun
Mendukung nested mapping, urutan, string multiline (blok literal dan folded), anchor, alias, merge key, dan semua tipe skalar YAML 1.2.
🔒
Data Anda tetap pribadi
Semua parsing berjalan secara lokal di browser Anda menggunakan JavaScript. Konten YAML Anda tidak pernah dikirim ke server, sehingga aman untuk file konfigurasi yang mengandung kredensial atau path internal.
📋
Salin atau sesuaikan format output
Pilih antara indentasi 2-spasi dan 4-spasi. Salin hasil JSON ke clipboard Anda dengan satu klik untuk langsung digunakan dalam kode, permintaan API, atau file konfigurasi.

Kasus Penggunaan YAML ke JSON

Pengembangan Frontend
Konversikan file konfigurasi YAML dari design system atau CMS menjadi JSON untuk dikonsumsi oleh bundler JavaScript, REST API, atau library i18n yang membutuhkan input JSON.
Rekayasa Backend
Ubah application.yml Spring Boot atau database.yml Rails menjadi JSON untuk dimasukkan ke skrip deployment, API gateway, atau layanan yang hanya menerima konfigurasi JSON.
DevOps dan CI/CD
Konversikan docker-compose.yml, alur kerja GitHub Actions, atau manifest Kubernetes ke JSON untuk alat validasi, policy engine seperti OPA, atau debugging dengan jq.
QA dan Pengujian
Ubah fixture pengujian YAML menjadi payload JSON untuk alat pengujian API seperti Postman, Insomnia, atau test suite otomatis yang mengharapkan body permintaan JSON.
Rekayasa Data
Konversikan definisi pipeline berformat YAML (Airflow, dbt, Dagster) ke JSON untuk validasi skema, manipulasi terprogram, atau integrasi dengan katalog metadata.
Pembelajaran dan Dokumentasi
Lihat dengan cepat bagaimana struktur YAML dipetakan ke padanan JSON-nya saat mempelajari format konfigurasi atau menulis dokumentasi.

Referensi Pemetaan Tipe YAML ke JSON

Setiap tipe data YAML dipetakan ke tipe JSON tertentu selama konversi. Tabel di bawah ini menunjukkan setiap konstruksi YAML beserta output JSON-nya. Memahami pemetaan ini membantu Anda memprediksi tampilan data YAML setelah dikonversi dan menghindari kejutan dengan tipe seperti boolean atau nilai null.

Tipe YAMLSintaks YAMLOutput JSON
Mappingname: Alice{ "name": "Alice" }
Sequence- apple\n- banana["apple", "banana"]
Stringgreeting: hello world"hello world"
Integercount: 4242
Floatratio: 3.143.14
Booleanactive: truetrue
Nullvalue: nullnull
Multiline (|)bio: |\n Line one\n Line two"Line one\nLine two\n"
Folded (>)note: >\n A long\n paragraph"A long paragraph\n"
Anchor/Alias&default\n <<: *defaultResolved inline (no $ref)

Sintaks YAML vs JSON

YAML dan JSON merepresentasikan model data yang sama tetapi dengan aturan sintaks yang berbeda. Perbedaan di bawah ini menjelaskan mengapa beberapa fitur YAML — seperti komentar dan anchor — tidak memiliki padanan JSON.

YAML
Menggunakan indentasi untuk nesting (tanpa kurung kurawal). Mendukung komentar dengan #. String biasanya tidak memerlukan tanda kutip. Mengizinkan nilai multiline dengan blok skalar | (literal) dan > (folded). Mendukung anchor (&nama) dan alias (*nama) untuk penggunaan ulang. Dalam YAML 1.2, hanya true dan false yang diakui sebagai nilai boolean; parser YAML 1.1 yang lebih lama juga menerima yes, no, on, dan off, tetapi dalam YAML 1.2 keduanya diperlakukan sebagai string biasa.
JSON
Menggunakan kurung kurawal dan kurung siku untuk nesting. Tidak ada sintaks komentar. Semua string harus menggunakan tanda kutip ganda. Tidak ada literal string multiline — gunakan urutan escape \n sebagai gantinya. Tidak ada mekanisme anchor atau alias. Nilai boolean harus ditulis dalam huruf kecil true dan false. Semua kunci harus berupa string bertanda kutip. Koma di akhir tidak valid.

Contoh Kode

Berikut adalah contoh kerja untuk mengonversi YAML ke JSON secara terprogram. Setiap contoh mem-parse string YAML dan menghasilkan JSON terformat.

JavaScript (Node.js)
import { load } from 'js-yaml'

const yamlStr = `
server:
  host: localhost
  port: 8080
  ssl: true
`

const json = JSON.stringify(load(yamlStr), null, 2)
console.log(json)
// → {
// →   "server": {
// →     "host": "localhost",
// →     "port": 8080,
// →     "ssl": true
// →   }
// → }
Python
import yaml, json

yaml_str = """
database:
  host: db.example.com
  port: 5432
  credentials:
    user: admin
    password: s3cret
"""

data = yaml.safe_load(yaml_str)
print(json.dumps(data, indent=2))
# → {
# →   "database": {
# →     "host": "db.example.com",
# →     "port": 5432,
# →     "credentials": {
# →       "user": "admin",
# →       "password": "s3cret"
# →     }
# →   }
# → }
Go
package main

import (
	"encoding/json"
	"fmt"
	"log"
	"gopkg.in/yaml.v3"
)

func main() {
	yamlData := []byte(`
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
`)

	var obj map[string]interface{}
	if err := yaml.Unmarshal(yamlData, &obj); err != nil {
		log.Fatal(err)
	}
	jsonBytes, _ := json.MarshalIndent(obj, "", "  ")
	fmt.Println(string(jsonBytes))
	// → { "services": { "web": { "image": "nginx:latest", "ports": ["80:80"] } } }
}
CLI (yq + jq)
# Convert a YAML file to JSON with yq
yq -o=json config.yaml > config.json

# Pipe YAML into yq for one-off conversion
echo "name: demo" | yq -o=json
# → { "name": "demo" }

# Python one-liner (no extra install on most systems)
python3 -c "import yaml, json, sys; print(json.dumps(yaml.safe_load(sys.stdin), indent=2))" < config.yaml

Pertanyaan yang Sering Diajukan

Apakah YAML adalah superset dari JSON?
Ya, mulai YAML 1.2 (diterbitkan tahun 2009). Setiap dokumen JSON yang valid juga merupakan YAML yang valid. Spesifikasi YAML sengaja diperbarui untuk memastikan kompatibilitas penuh dengan JSON. Namun, sebaliknya tidak berlaku — fitur YAML seperti komentar, anchor, dan kunci tanpa tanda kutip tidak memiliki padanan JSON.
Apa yang terjadi pada komentar YAML selama konversi?
Komentar dihapus. JSON tidak memiliki sintaks komentar, sehingga baris yang diawali # dalam input YAML akan hilang selama konversi. Jika Anda perlu mempertahankan komentar, simpan file YAML asli sebagai sumber kebenaran dan hasilkan JSON darinya setiap kali diperlukan.
Bagaimana anchor dan alias YAML ditangani?
Anchor (&nama) dan alias (*nama) diselesaikan selama parsing. Alias digantikan dengan salinan penuh data yang di-anchor. JSON yang dihasilkan tidak mengandung referensi — semua nilai diperluas secara inline. Merge key (<<: *nama) diselesaikan dengan cara yang sama.
Apakah konversi YAML ke JSON bisa kehilangan data?
Untuk nilai data, tidak. Semua tipe skalar YAML (string, angka, boolean, null) memiliki padanan JSON langsung. Yang hilang adalah: komentar, direktif tag, nama anchor, dan perbedaan antara gaya blok dan flow. Jika YAML Anda mengandalkan tag kustom (!!python/object, !!timestamp), tag tersebut diselesaikan ke nilai biasa atau mungkin menyebabkan error parsing tergantung pada parser.
Mengapa boolean 'yes' dalam YAML saya menjadi string di JSON?
Alat ini menggunakan js-yaml v4, yang mengikuti resolusi boolean YAML 1.2. Hanya true dan false (huruf apa pun) yang diakui sebagai boolean. Nilai seperti yes, no, on, dan off diperlakukan sebagai string biasa dan muncul sebagai string bertanda kutip dalam output JSON. Jika Anda melihat nilai string yang tidak terduga di mana Anda mengharapkan boolean, ganti dengan true atau false dalam sumber YAML Anda.
Berapa ukuran file YAML maksimum yang dapat ditangani alat ini?
Alat ini berjalan di browser Anda, sehingga batasnya tergantung pada memori yang tersedia di perangkat Anda. Dalam praktiknya, file hingga beberapa megabyte dikonversi tanpa masalah. Untuk file yang sangat besar (50 MB+), alat CLI seperti yq atau skrip Python dengan PyYAML akan lebih andal karena dapat melakukan streaming data alih-alih memuat semuanya ke memori sekaligus.
Bagaimana string YAML multiline dikonversi ke JSON?
YAML memiliki dua gaya blok skalar multiline. Blok literal (|) mempertahankan baris baru sebagai karakter \n dalam string JSON. Blok folded (>) mengganti baris baru tunggal dengan spasi, mengubah beberapa baris menjadi satu paragraf. Kedua gaya secara default menambahkan baris baru di akhir, yang dapat Anda hapus dengan indikator chomping (|- atau >-).