Langsung ke konten
LeedyBox
Dukung

Konversi antara JSON, CSV, dan YAML

JSON, CSV, dan YAML sering kali dapat menampung data yang sama, tetapi ketiganya tidak saling memetakan satu banding satu. Panduan ini menjelaskan keunggulan setiap format, detail apa yang dapat berubah saat konversi, dan cara memeriksa hasilnya.

Keunggulan Setiap Format

JSON adalah format umum untuk API web dan konfigurasi yang dibaca oleh program. JSON memiliki sekumpulan tipe yang kecil dan jelas: objek, array, string, angka, boolean, dan null. Sintaksnya yang ketat memudahkan perangkat lunak untuk mengurainya, tetapi JSON tidak mendukung komentar.

CSV adalah tabel: satu baris data per baris teks, satu nilai per kolom. Spreadsheet, database, dan alat pelaporan dapat mengimpornya dengan mudah, dan formatnya ringkas untuk kumpulan data besar yang datar. CSV tidak memiliki cara standar untuk menjelaskan tipe data atau struktur bersarang.

YAML dirancang untuk ditulis dan dibaca oleh manusia. YAML populer untuk file konfigurasi karena mendukung komentar, memakai indentasi alih-alih tanda kurung, dan dapat menggambarkan struktur yang sama dengan JSON. Sintaks yang fleksibel juga berarti kesalahan kecil pada indentasi atau tanda kutip dapat mengubah maknanya.

FiturJSONCSVYAML
Objek dan array bersarangYaTidak (tabel datar)Ya
Tipe dataString, angka, boolean, nullHanya teksDisimpulkan dari nilai
KomentarTidakTidakYa
Penggunaan umumAPI, data aplikasiSpreadsheet, imporFile konfigurasi

Struktur Bersarang Diratakan di CSV

File CSV hanya memiliki baris dan kolom, sehingga data bersarang harus dibentuk ulang. Ada dua pendekatan umum. Yang pertama meratakan struktur menjadi nama kolom seperti address.city dan address.zip. Yang kedua menyimpan bagian bersarang sebagai string JSON di dalam satu sel. Konverter Data LeedyBox menyediakan kedua opsi tersebut.

Kedua pendekatan memiliki kelebihan dan kekurangan. Kolom yang diratakan mudah dibaca di spreadsheet, tetapi array dengan panjang berbeda menghasilkan banyak kolom yang jarang terisi. String JSON di dalam sel mempertahankan struktur, tetapi lebih sulit diedit secara manual. Jika nanti Anda mengonversi kembali ke JSON, periksa apakah strukturnya sama dengan data awal.

Tipe Menjadi Teks di CSV

CSV menyimpan setiap nilai sebagai teks. Angka 42, string "42", dan boolean true semuanya terlihat sama di dalam sel. Saat file CSV dibaca kembali, program harus menebak atau diberi tahu kolom mana yang berisi angka atau tanggal. Konverter LeedyBox membaca nilai CSV sebagai teks, sehingga angka dari file CSV muncul sebagai string di JSON kecuali Anda mengubahnya.

Aplikasi spreadsheet menambahkan tebakannya sendiri: aplikasi tersebut bisa menghapus angka nol di depan kode pos atau nomor telepon, mengubah angka panjang menjadi notasi ilmiah, atau menafsirkan nilai sebagai tanggal. Sel yang diawali =, +, -, atau @ dapat diperlakukan sebagai rumus; konverter memiliki pengaturan opsional perlindungan rumus Excel untuk output CSV.

Komentar dan Penentuan Tipe di YAML

JSON tidak mendukung komentar, sehingga mengonversi YAML ke JSON akan membuang komentar. Mengonversi kembali tidak memulihkannya. Simpan file YAML asli jika komentarnya penting.

YAML menebak tipe dari nilai tanpa tanda kutip. Menurut aturan YAML 1.1 yang lebih lama, yang dipakai sebagian parser, kata seperti no, yes, on, dan off menjadi boolean, sehingga kode negara seperti NO dapat berubah menjadi false. Nilai seperti 2026-10-02 dapat menjadi objek tanggal, dan 1e3 atau 010 dapat dibaca sebagai angka. Konverter LeedyBox membaca YAML dengan core schema YAML 1.2, yang mempertahankan no dan tanggal sebagai teks, tetapi alat lain yang membaca file Anda mungkin berperilaku berbeda. Memberi tanda kutip pada nilai yang harus tetap berupa teks adalah kebiasaan yang paling aman.

Angka Besar di JavaScript

JavaScript menyimpan angka sebagai nilai floating point 64-bit. Tidak semua bilangan bulat yang lebih besar dari 9.007.199.254.740.991 (253 − 1) dapat direpresentasikan secara tepat, sehingga ID besar seperti 12345678901234567891 dapat dibulatkan tanpa pemberitahuan saat diurai. Hal ini memengaruhi setiap konverter berbasis browser, termasuk konverter ini, yang menampilkan pemberitahuan saat mendeteksi angka seperti itu. ID database dan pengenal panjang lainnya lebih aman disimpan sebagai string.

Memeriksa Hasil

Konversi yang menghasilkan output valid belum tentu benar. Sebelum Anda menggunakan hasilnya:

  • Bandingkan jumlah baris atau item dengan sumbernya.
  • Periksa beberapa rekaman secara acak, termasuk yang berisi nilai kosong, karakter khusus, pergantian baris, atau data bersarang.
  • Periksa kolom yang seharusnya berupa angka, boolean, atau tanggal di sistem tujuan.
  • Cari angka panjang yang mungkin telah dibulatkan.
  • Validasi output dengan program yang akan membacanya, menggunakan salinan data Anda terlebih dahulu.

Alat Bandingkan Teks dapat membantu membandingkan file asli dengan hasil konversi bolak-balik.

Pertanyaan Umum

Bisakah saya mengonversi JSON ke CSV lalu kembali lagi tanpa perubahan?

Hanya untuk data sederhana yang datar, dan bahkan saat itu angka serta boolean biasanya kembali sebagai teks. Data bersarang dan tipe bergantung pada opsi yang digunakan, jadi bandingkan hasilnya dengan data asli.

Mengapa nilai YAML saya berubah menjadi true atau false?

Sebagian parser YAML memperlakukan kata tanpa tanda kutip seperti yes, no, on, dan off sebagai boolean. Beri tanda kutip pada nilai tersebut agar tetap berupa teks.

Apakah data saya diunggah saat dikonversi?

Konverter Data LeedyBox berjalan di browser Anda, sehingga data yang Anda tempel diproses di perangkat Anda.