JSON to YAML

Konversi JSON ke format YAML

Coba contoh

Input JSON

Output YAML

Berjalan lokal · Aman untuk menempel rahasia
YAML akan muncul di sini…

Apa Itu Konversi JSON ke YAML?

Konversi JSON ke YAML mengubah data dari JavaScript Object Notation menjadi YAML Ain't Markup Language. Kedua format ini merepresentasikan struktur data yang sama (objek, array, string, angka, boolean, null), tetapi menggunakan sintaks yang berbeda. JSON mengandalkan kurung kurawal, kurung siku, dan koma. YAML menggunakan indentasi dan pemisah baris, menghasilkan output yang lebih mudah dibaca seperti teks biasa. Berbeda dengan XML, kedua format ini tidak memerlukan skema.

YAML dirancang sebagai format serialisasi data yang ramah manusia. Format ini adalah bahasa konfigurasi default untuk manifes Kubernetes, file Docker Compose, playbook Ansible, alur kerja GitHub Actions, dan banyak sistem CI/CD. Ketika data sumber Anda dalam JSON dan sistem target mengharapkan YAML, Anda memerlukan konverter yang mempertahankan setiap nilai, tipe, dan tingkat nesting secara tepat tanpa kehilangan data.

Mengonversi JSON ke YAML secara online berguna ketika Anda menerima respons API atau data ekspor dalam JSON dan perlu menempelkannya ke file konfigurasi YAML. Konversi ini tidak merusak data untuk semua tipe JSON standar: string, angka, boolean, null, array, dan objek dipetakan langsung ke padanan YAML-nya. Nilai yang mengandung titik dua atau karakter khusus secara otomatis diberi tanda kutip agar output menjadi YAML yang valid.

Mengapa Mengonversi JSON ke YAML?

YAML adalah standar untuk file konfigurasi; JSON adalah format yang dikembalikan oleh API. Mengonversi di antara keduanya memungkinkan Anda menggunakan format yang tepat untuk setiap tugas tanpa menulis ulang data secara manual.

Konversi Instan
Tempelkan JSON dan dapatkan output YAML seketika. Tidak perlu menunggu pemrosesan server, tidak ada unggahan file, tidak ada batas penggunaan.
🔒
Pemrosesan Mengutamakan Privasi
Data Anda tidak pernah meninggalkan browser. Konversi berjalan sepenuhnya di JavaScript pada perangkat Anda, sehingga kredensial, token, dan API key tetap bersifat pribadi.
🔀
Menangani Struktur JSON Apa Pun
Objek yang sangat bersarang, array besar, tipe campuran, string Unicode, dan karakter khusus semuanya dikonversi dengan benar. Alat ini mempertahankan struktur data secara lengkap.
📋
Tanpa Akun atau Instalasi
Buka halaman dan mulai mengonversi. Tidak perlu daftar, tidak perlu ekstensi, tidak perlu menginstal alat CLI apa pun. Bekerja di perangkat apa pun yang memiliki browser.

Kasus Penggunaan JSON ke YAML

Kubernetes & Docker Compose
Respons API dan konfigurasi yang diekspor sering datang dalam bentuk JSON. Konversikan ke YAML untuk digunakan langsung di manifes Kubernetes, Helm chart, dan file Docker Compose.
Konfigurasi Pipeline CI/CD
GitHub Actions, GitLab CI, CircleCI, dan Azure Pipelines semuanya menggunakan YAML. Saat menghasilkan konfigurasi pipeline secara terprogram dari JSON, konversikan outputnya sebelum di-commit.
Playbook Ansible
Ansible mengharapkan YAML untuk playbook dan file inventaris. Konversikan ekspor inventaris JSON dari cloud API ke format YAML yang dibutuhkan Ansible.
Inspeksi Respons API
REST API mengembalikan JSON. Mengonversi respons bersarang ke YAML membuat hierarki data terlihat sekilas, yang lebih cepat dipindai dibandingkan JSON yang penuh dengan kurung.
Migrasi File Konfigurasi
Saat memigrasikan aplikasi dari konfigurasi berbasis JSON (misalnya, tsconfig.json, ekspor package.json) ke alat berbasis YAML, konversikan nilai-nilainya secara massal daripada mengetiknya ulang.
Pembelajaran & Dokumentasi
Pelajar dan penulis teknis menggunakan perbandingan JSON/YAML berdampingan untuk memahami bagaimana struktur data dipetakan antar format. Konverter ini memberikan contoh yang akurat secara instan.

Perbandingan JSON vs YAML

JSON dan YAML dapat merepresentasikan data yang sama, tetapi sintaks dan kemampuannya berbeda dalam hal yang penting untuk kasus penggunaan tertentu.

FiturJSONYAML
SyntaxCurly braces, square brackets, colons, commasIndentation-based, colons, dashes
ReadabilityModerate — nested brackets become denseHigh — visual hierarchy from indentation
CommentsNot allowed (RFC 8259)Supported with #
Multi-line stringsEscape sequences only (\n)Block scalars with | or >
Data typesstring, number, boolean, null, object, arraySame plus date, timestamp, binary
File sizeSlightly larger (brackets + quotes)Slightly smaller (no brackets)
Trailing commasNot allowedNot applicable (no commas)
SpecRFC 8259 / ECMA-404YAML 1.2 (yaml.org)

Jebakan YAML Setelah Konversi

YAML memiliki aturan parsing yang mengejutkan developer yang datang dari JSON. Empat masalah ini paling sering menyebabkan bug saat bekerja dengan output yang dikonversi.

yes/no Tanpa Tanda Kutip Menjadi Boolean
Parser YAML 1.1 memperlakukan yes, no, on, off, true, dan false tanpa tanda kutip sebagai boolean. Jika JSON Anda memiliki nilai string "yes" atau "no", output YAML mungkin kehilangan tanda kutip dan diurai sebagai boolean oleh alat lama. YAML 1.2 membatasi ini hanya untuk true/false.
Kesalahan Indentasi Merusak Parsing
YAML menggunakan indentasi untuk mendefinisikan struktur. Satu spasi ekstra atau yang kurang dapat mengubah makna atau menghasilkan error parsing. Berbeda dengan JSON, di mana koma yang salah tempat memberikan error yang jelas, kesalahan indentasi YAML dapat secara diam-diam mengubah hierarki data Anda.
Titik Dua dalam Nilai Perlu Tanda Kutip
Titik dua diikuti spasi (": ") adalah pemisah kunci-nilai YAML. Jika string JSON Anda mengandung urutan tersebut (misalnya, "http://example.com"), output YAML harus memberikan tanda kutip pada nilai tersebut. Sebagian besar konverter menangani ini secara otomatis.
File Multi-Dokumen
YAML mendukung beberapa dokumen dalam satu file yang dipisahkan oleh ---. JSON tidak memiliki padanannya. Saat mengonversi array JSON dari konfigurasi, setiap elemen bisa menjadi dokumen YAML terpisah, atau tetap sebagai item array. Ketahui format mana yang diharapkan alat target Anda.

Contoh Kode

Mengonversi JSON ke YAML secara terprogram memerlukan library serialisasi YAML di sebagian besar bahasa. Library standar menangani parsing JSON; output YAML memerlukan paket tambahan.

JavaScript (Node.js)
import YAML from 'js-yaml'

const json = '{"host":"localhost","port":3000,"debug":true}'
const obj = JSON.parse(json)
const yamlStr = YAML.dump(obj, { indent: 2 })
console.log(yamlStr)
// → host: localhost
// → port: 3000
// → debug: true
Python
import json, yaml

json_str = '{"host": "localhost", "port": 3000, "debug": true}'
data = json.loads(json_str)
yaml_str = yaml.dump(data, default_flow_style=False, sort_keys=False)
print(yaml_str)
# → host: localhost
# → port: 3000
# → debug: true
Go
package main

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

func main() {
    jsonStr := `{"host":"localhost","port":3000,"debug":true}`
    var data map[string]interface{}
    json.Unmarshal([]byte(jsonStr), &data)

    yamlBytes, _ := yaml.Marshal(data)
    fmt.Println(string(yamlBytes))
    // → debug: true
    // → host: localhost
    // → port: 3000
}
CLI (yq / jq + Python)
# Using yq (https://github.com/mikefarah/yq)
echo '{"host":"localhost","port":3000}' | yq -P
# → host: localhost
# → port: 3000

# Using Python one-liner
echo '{"host":"localhost","port":3000}' | python3 -c "import sys,json,yaml; print(yaml.dump(json.load(sys.stdin), default_flow_style=False))"

Pertanyaan yang Sering Diajukan

Apakah konversi JSON ke YAML bersifat lossless?
Ya, untuk semua tipe JSON standar. String, angka, boolean, null, array, dan objek memiliki padanan YAML langsung. YAML yang dikonversi dapat diurai kembali untuk menghasilkan data yang identik. Satu-satunya perbedaan tampilan adalah pemformatan: YAML menggunakan indentasi sebagai pengganti kurung kurawal.
Apakah YAML dapat merepresentasikan semua yang bisa dilakukan JSON?
Ya. YAML adalah superset dari JSON (sejak YAML 1.2). Setiap dokumen JSON yang valid juga merupakan YAML yang valid. YAML menambahkan fitur yang tidak dimiliki JSON: komentar, anchor/alias, string multi-baris, dan tipe skalar tambahan seperti tanggal.
Mengapa Kubernetes dan Docker menggunakan YAML alih-alih JSON?
YAML mendukung komentar, yang sangat penting untuk mendokumentasikan konfigurasi infrastruktur. YAML juga lebih mudah dibaca untuk struktur yang sangat bersarang karena indentasi menggantikan kerumitan kurung. Kubernetes sebenarnya menerima JSON dan YAML, tetapi komunitas dan semua dokumentasi resmi menggunakan YAML.
Bagaimana cara menangani file JSON yang besar?
Konverter ini berjalan di browser Anda, sehingga dapat menangani file hingga beberapa megabyte tanpa masalah. Untuk file yang sangat besar (50MB+), gunakan alat CLI seperti yq atau skrip Python dengan library PyYAML. Alat-alat ini memproses data sebagai stream dan menggunakan lebih sedikit memori.
Apakah konverter mempertahankan urutan kunci?
Ya. Konverter menghasilkan kunci YAML dalam urutan yang sama seperti yang muncul di input JSON. Objek JSON secara teknis tidak berurutan menurut spesifikasinya, tetapi dalam praktiknya parser mempertahankan urutan penyisipan, dan alat ini menjaga urutan tersebut di output YAML.
Versi YAML apa yang diikuti output?
Output mengikuti konvensi YAML 1.2. Ini berarti hanya true dan false yang diperlakukan sebagai literal boolean (bukan yes/no/on/off). String yang dapat disalahartikan secara otomatis diberi tanda kutip untuk mencegah ambiguitas parsing.
Apakah aman menempelkan API key dan token ke alat ini?
Ya. Konversi berjalan sepenuhnya di browser Anda menggunakan JavaScript. Tidak ada data yang dikirimkan ke server mana pun. Anda dapat memverifikasi ini dengan membuka network inspector browser Anda dan mengamati bahwa tidak ada permintaan yang dibuat selama konversi.