JSON, YAML, CSV: Kapan Menggunakan Masing-Masing dan Cara Mengonversinya
Anda mengunduh dataset dan formatnya CSV. API Anda mengembalikan JSON. File konfigurasi Anda dalam format YAML. Rekan mengirimkan file JSON dan meminta Anda mengubahnya menjadi spreadsheet. Rekan lain memberikan konfigurasi YAML dan Anda membutuhkannya sebagai JSON untuk alat yang berbeda.
Konversi format data adalah salah satu tugas yang tampak sepele hingga Anda benar-benar melakukannya. Memahami kapan menggunakan format mana, dan cara berpindah di antara keduanya, menghemat waktu nyata.
Tiga Format Sekilas
JSON (JavaScript Object Notation)
{
"name": "Alice",
"age": 30,
"skills": ["Python", "SQL", "Docker"],
"address": {
"city": "Berlin",
"country": "Germany"
}
}
Apa itu: Format teks untuk data terstruktur yang mendukung objek (pasangan kunci-nilai), array (daftar berurutan), string, angka, boolean, dan null.
Kelebihan: Dapat dibaca mesin, didukung secara luas di setiap bahasa pemrograman, menangani data bersarang secara alami, sintaks ketat mencegah ambiguitas.
Kekurangan: Verbose (banyak kurung kurawal, kurung siku, dan tanda kutip), tidak seramah YAML untuk dibaca manusia, tidak mendukung komentar.
YAML (YAML Ain't Markup Language)
name: Alice
age: 30
skills:
- Python
- SQL
- Docker
address:
city: Berlin
country: Germany
Apa itu: Format serialisasi data yang ramah manusia yang menggunakan indentasi alih-alih kurung kurawal dan kurung siku. Ini adalah superset dari JSON, artinya JSON yang valid juga merupakan YAML yang valid.
Kelebihan: Sangat mudah dibaca, mendukung komentar, gangguan visual lebih sedikit, cocok untuk file konfigurasi.
Kekurangan: Sensitif terhadap indentasi (mudah rusak dengan spasi yang salah), beberapa perilaku penguraian yang mengejutkan, lebih lambat diurai daripada JSON.
CSV (Comma-Separated Values)
name,age,city,country
Alice,30,Berlin,Germany
Bob,25,London,UK
Charlie,35,Paris,France
Apa itu: Format teks datar di mana setiap baris adalah baris data dan nilai dalam baris dipisahkan oleh koma (atau terkadang titik koma atau tab).
Kelebihan: Universal (setiap spreadsheet, database, dan alat data mendukungnya), ringkas untuk data tabular, mudah dibaca dan dibuat.
Kekurangan: Tidak mendukung data bersarang, tidak ada tipe data (semuanya adalah string), tidak ada standar untuk karakter khusus, terbatas pada tabel datar.
Tahukah Anda? YAML secara teknis adalah superset dari JSON. Ini berarti dokumen JSON yang valid secara otomatis merupakan dokumen YAML yang valid. Anda bisa menempel JSON ke parser YAML dan itu akan berhasil. Sebaliknya tidak berlaku — fitur YAML (komentar, anchor, string multi-baris) tidak memiliki padanan JSON.
Kapan Menggunakan Format Mana
| Kasus Penggunaan | Format Terbaik | Alasan |
|---|---|---|
| Permintaan dan respons API | JSON | Standar industri, setiap bahasa memiliki dukungan asli |
| File konfigurasi | YAML | Dapat dibaca manusia, mendukung komentar untuk dokumentasi |
| Data spreadsheet | CSV | Terbuka langsung di Excel, Google Sheets, dll. |
| Ekspor database | CSV | Data tabular datar langsung terpetakan ke baris dan kolom |
| Data bersarang yang kompleks | JSON atau YAML | CSV tidak dapat merepresentasikan nesting |
| Pertukaran data antar sistem | JSON | Penguraian yang tidak ambigu, spesifikasi ketat |
| Konfigurasi yang diedit manusia | YAML | Lebih mudah dibaca dan diedit secara manual |
| Daftar data sederhana | CSV | Ringan, tanpa overhead |
Mengonversi Antar Format
JSON ke YAML
Ini adalah konversi konfigurasi yang paling umum. Anda memiliki konfigurasi JSON dari satu alat dan membutuhkan YAML untuk alat lain. Konversinya mudah karena YAML mendukung semua yang JSON lakukan.
{"server": {"host": "0.0.0.0", "port": 8080}}
Menjadi:
server:
host: 0.0.0.0
port: 8080
YAML ke JSON
Beralih dari YAML ke JSON juga sederhana, tetapi Anda kehilangan komentar (JSON tidak mendukungnya) dan hasilnya lebih verbose.
JSON ke CSV
Ini bekerja dengan baik untuk array JSON datar (array objek dengan kunci yang sama). Setiap objek menjadi baris, dan setiap kunci menjadi header kolom.
[
{"name": "Alice", "age": 30},
{"name": "Bob", "age": 25}
]
Menjadi:
name,age
Alice,30
Bob,25
Peringatan Konversi JSON-ke-CSV rusak ketika JSON berisi objek atau array bersarang. CSV bersifat datar — tidak ada cara untuk merepresentasikan array "skills" atau objek "address" yang bersarang. Data bersarang harus diratakan (address.city, address.country sebagai kolom terpisah) atau diserialisasi sebagai string dalam sel CSV.
CSV ke JSON
Setiap baris menjadi objek, dengan header kolom sebagai kunci. Ini bersih untuk data tabular sederhana.
CSV ke YAML
Kurang umum, tetapi mengikuti logika yang sama: setiap baris menjadi pemetaan YAML, dan seluruh file menjadi urutan YAML.
Jebakan Umum
Masalah Encoding CSV
File CSV dapat menggunakan encoding karakter yang berbeda (UTF-8, Latin-1, Windows-1252). Jika Anda membuka CSV dan melihat karakter rusak seperti "München" alih-alih "München," itu adalah ketidakcocokan encoding. Selalu gunakan UTF-8 bila memungkinkan.
Kebingungan Pemisah CSV
Tidak semua CSV menggunakan koma. CSV Eropa sering menggunakan titik koma karena koma digunakan sebagai pemisah desimal dalam banyak format angka Eropa. Nilai yang dipisahkan tab (TSV) adalah varian umum lainnya.
Kesalahan Indentasi YAML
YAML menggunakan indentasi (spasi, bukan tab) untuk mendefinisikan struktur. Indentasi yang tidak konsisten, atau mencampur tab dan spasi, menghasilkan kesalahan penguraian atau interpretasi yang salah secara diam-diam. Gunakan tepat 2 spasi per level indentasi dan konfigurasikan editor Anda untuk memasukkan spasi alih-alih tab.
Peringatan Dalam YAML, string no diurai sebagai boolean false, dan yes diurai sebagai true. String 1.0 diurai sebagai angka. Jika Anda bermaksud string literal "no," "yes," atau "1.0," Anda harus mengutipnya: "no", "yes", "1.0". Ini adalah salah satu gotcha YAML yang paling terkenal.
Trailing Comma di JSON
JSON tidak mengizinkan trailing comma. Ini valid di JavaScript tetapi tidak valid di JSON:
{"name": "Alice", "age": 30,} // JSON tidak valid: trailing comma
Performa File Besar
Untuk dataset yang sangat besar (jutaan baris), CSV lebih efisien daripada JSON atau YAML karena memiliki overhead minimal per record. JSON menambahkan kurung kurawal dan tanda kutip untuk setiap nilai, yang secara signifikan meningkatkan ukuran file untuk data tabular yang besar.
Alat Praktis untuk Konversi
Untuk konversi cepat sekali pakai, alat berbasis browser adalah pilihan tercepat. Anda tempel atau unggah data, pilih format target, dan dapatkan hasilnya segera.
Tips Konversi antara format JSON, YAML, dan CSV secara instan: Cara Mengonversi Format Data. Tempel data Anda, pilih format target, dan salin atau unduh hasilnya.
Untuk bekerja secara khusus dengan JSON, formatter yang memvalidasi dan mencetak JSON Anda dengan indah sangatlah berharga:
- JSON Formatter — validasi, format, dan minifikasi JSON
- Konverter JSON ke CSV — konversi array JSON ke CSV
- Konverter YAML-JSON — konversi antara YAML dan JSON
- CSV Viewer — lihat dan jelajahi file CSV
Konversi data Anda sekarang:
Semua alat gratis dan bekerja langsung di browser Anda.