Konverter JSON ke CSV

Konversi JSON ke CSV secara online — gratis, instan, dan privat. File Anda diproses langsung di browser Anda dan tidak pernah diunggah ke server.

Pemisah CSV
Hasil

File hasil konversi dan pratinjau akan muncul di sini.

Siap. Pilih file tabel untuk dikonversi.

Cara kerja konversi

  • Array objek akan diubah menjadi baris dan kolom; objek bersarang (nested) akan diratakan menjadi kolom dengan kunci bertitik seperti address.city.
  • Pilih pemisah (delimiter) yang sesuai dengan data Anda — koma, titik koma, atau tab.

File tabel Anda dikonversi langsung di browser Anda. Tidak ada data yang diunggah ke BroBroGo.

Tanya Jawab

Bagaimana cara mengonversi JSON ke CSV?

Seret file JSON Anda dan klik konversi — file CSV siap diunduh dalam hitungan detik, lengkap dengan pratinjau hasilnya. Seluruh proses berjalan langsung di perangkat Anda.

Berapa batas ukuran file yang dapat dikonversi?

Hingga 8 MB, 10.000 baris, dan 200 kolom per file. Untuk kumpulan data yang lebih besar, sebaiknya bagi menjadi beberapa file yang lebih kecil terlebih dahulu.

Mengapa Konversi JSON ke CSV Berbeda dari Arah Lain

JSON dan CSV dibangun di atas asumsi yang sangat berbeda. JSON merepresentasikan data sebagai pohon node bertipe—angka, string, boolean, null, array, objek—yang dapat bersarang secara arbitrer. CSV adalah tabel datar tanpa tipe: baris dan kolom, tidak lebih. Mengonversi dari JSON ke CSV berarti Anda harus meratakan pohon itu menjadi kisi, membuang setiap anotasi tipe, dan membuat serial semuanya sebagai teks biasa. Tidak ada cara untuk mempertahankan struktur, jadi konversi ini secara inheren bersifat merugikan.

Alat ini menangani perataan itu secara otomatis, tetapi memahami apa yang terjadi di balik layar membantu Anda memprediksi hasilnya. Ketika Anda mengunggah file JSON yang berbentuk tabel (array objek atau array array), alat ini mengulang setiap elemen. Untuk array objek, setiap kunci tingkat atas menjadi header kolom. Jika sebuah objek berisi objek bersarang, kunci-kunci tersebut digabungkan dengan titik: misalnya, {"address": {"city": "Berlin"}} menjadi kolom bernama address.city dengan nilai Berlin. Array array lebih sederhana: setiap array dalam menjadi baris, dan elemen-elemennya menjadi nilai kolom secara berurutan; tidak ada kunci header, jadi tidak ada baris header yang dibuat. Jika sebuah objek berisi array bersarang, seluruh array tetap berada dalam satu sel sebagai teks JSON-nya.

Semua informasi tipe dihilangkan. Angka seperti 42 menjadi string "42"; boolean menjadi "true" atau "false"; null menjadi sel kosong. Nol di depan pada angka hilang karena angka JSON tidak mempertahankannya—0123 dalam JSON tidak valid (akan diinterpretasikan sebagai oktal di beberapa parser), tetapi bahkan jika Anda memiliki string seperti "0123" yang terlihat seperti angka di sumber, alat ini mengonversinya sebagai string dan mempertahankan nolnya. Namun, jika nilainya sebenarnya adalah angka JSON, itu akan ditulis tanpa nol di depan.

Cara Kerja Alat: Flattening dengan Notasi Dot‑Path

Algoritma perataan ini lugas tetapi harus memenuhi beberapa aturan yang berasal dari standar CSV (RFC 4180) dan batasan praktis.

Array Objek

Jika JSON Anda terlihat seperti ini:

[
  { "id": 1, "name": "Alice", "address": { "city": "Paris", "zip": 75001 } },
  { "id": 2, "name": "Bob",   "address": { "city": "London", "zip": "EC1A" } }
]

Alat ini menghasilkan dua baris ditambah header:

id name address.city address.zip
1 Alice Paris 75001
2 Bob London EC1A

Notasi dot-path meratakan satu tingkat. Jika ada sarang yang lebih dalam, misal contact.phone.home, path akan meluas sesuai. Alat ini tidak mencoba untuk "membatalkan perataan" beberapa path bersarang menjadi baris terpisah; ia menyimpan semuanya dalam satu baris per objek sumber. Jika dua objek memiliki kumpulan kunci yang berbeda, gabungan semua kunci menjadi header; nilai yang hilang menjadi sel kosong.

Array Array

Untuk daftar sederhana dari daftar:

[
  ["Alice", 34, true],
  ["Bob", 28, false]
]

Output tidak memiliki header. Setiap sub-array menjadi baris. Jika array dalam memiliki panjang yang berbeda, alat ini mengisi baris yang lebih pendek dengan sel kosong.

Delimiter dan Quoting

Anda memilih delimiter: koma (,), titik koma (;), atau tab (\t). Pilihan ini memengaruhi keterbacaan dan kompatibilitas dengan alat hilir. Aturan quoting CSV diterapkan secara otomatis: jika sebuah bidang berisi delimiter, tanda kutip ganda, atau jeda baris, seluruh bidang dibungkus dalam tanda kutip ganda, dan setiap tanda kutip ganda di dalamnya di-escape dengan menggandakannya (""). Misalnya, bidang yang berisi Paris, TX dengan delimiter koma menjadi "Paris, TX". Alat ini melakukannya untuk Anda – tidak perlu escaping manual.

Batasan dan Aturan Penting yang Harus Diketahui

Alat ini bekerja secara ketat berdasarkan aturan tertentu yang perlu Anda pahami agar konversi berjalan lancar.

  • JSON harus berbentuk tabel: Hanya array objek atau array array yang diterima. Jika file JSON hanya berisi satu objek atau objek dengan properti yang tidak seragam, konversi akan gagal.
  • Tidak ada preservasi tipe data: Semua nilai JSON (angka, boolean, null) diubah menjadi string di CSV. Angka 123 menjadi "123", boolean true menjadi "true". Nilai null menjadi sel kosong.
  • Penanganan delimiter secara otomatis: Nilai yang mengandung koma, tanda kutip ganda, atau baris baru akan di-quote otomatis sesuai aturan RFC 4180. Misalnya, sel dengan nilai "Jakarta, Indonesia" akan diubah menjadi "Jakarta, Indonesia" (diapit kutip ganda) untuk mencegah kerusakan kolom.
  • Batas ukuran file dan jumlah baris/kolom: Alat ini memiliki batas atas. Satu file pada satu waktu. Ukuran file maksimal 8 MB. Jika file melebihi ukuran maksimum, muncul error "This file is too large. Use a file under 8 MB.". Demikian pula jika tabel memiliki lebih dari 10.000 baris atau 200 kolom, akan muncul "This table has more than ‹max› rows." atau "This table has more than ‹max› columns.".
  • Error umum lainnya: Jika tidak ada file yang dipilih, muncul "Pilih file CSV, JSON, atau XLSX.". Jika format file bukan CSV, JSON, atau XLSX, muncul "Pilih file CSV, JSON, atau XLSX.". Jika output yang diminta tidak kompatibel, muncul "Choose a different output format.". Proses konversi bisa gagal karena berbagai alasan—"Could not convert this file."—atau dibatalkan pengguna—"Conversion cancelled.". Jika konversi memakan waktu lebih dari sekitar 12 detik, akan ada peringatan "Konversi ini memakan waktu terlalu lama. Coba gunakan file yang lebih kecil.".

Format dan Delimiter CSV: Koma, Titik Koma, dan Tab

Anda dapat memilih tiga delimiter output: koma (,), titik koma (;), atau tab (\t). Pemilihan delimiter sangat penting karena menentukan bagaimana perangkat lunak spreadsheet atau basis data akan menginterpretasikan file CSV. Di banyak negara berbahasa Indonesia, Excel sering menggunakan titik koma sebagai delimiter default karena koma digunakan sebagai pemisah desimal. Dengan alat ini, Anda bisa langsung menentukan delimiter yang sesuai dengan lokal Anda.

Jika Anda memilih koma, alat akan menghasilkan file CSV standar RFC 4180. Jika titik koma, alat akan mengganti pemisah kolom menjadi ; dan tetap meng-quote nilai yang mengandung koma atau titik koma. Untuk tab, file yang dihasilkan sebenarnya adalah TSV (Tab-Separated Values), tetapi ekstensi tetap .csv menurut kebiasaan. Perhatikan bahwa beberapa program mungkin memerlukan ekstensi .tsv agar dapat membaca delimiter tab dengan benar—Anda dapat mengganti ekstensi setelah unduhan.

Penting: alat ini tidak mengubah format internal angka atau tanggal. Semua nilai dikonversi menjadi string tanpa format khusus. Jika JSON Anda berisi angka dengan ribuan pemisah atau format tanggal tertentu (misal "2025-03-15"), string tersebut akan tetap apa adanya. Namun, jika Anda berharap tanggal dikenali oleh Excel, Anda mungkin perlu menyesuaikan format setelah konversi.

Kehilangan Tipe Data dan Struktur Hirarkis

Satu-satunya kerugian terbesar saat mengonversi JSON ke CSV adalah hilangnya tipe data dan struktur. JSON mendukung tipe: string, number, boolean, null, objek, dan array. CSV hanya mengenal string. Akibatnya:

  • Angka: 123.45 menjadi "123.45". Saat dibuka di Excel, mungkin tetap dikenali sebagai angka, tetapi jika ada leading zero (seperti kode pos 00123), akan terpotong menjadi 123. Solusi: pastikan nilai tersebut sudah berupa string dalam JSON (diapit tanda kutip) atau tambahkan apostrof di Excel.
  • Boolean: true dan false menjadi string. Tidak ada konversi ke 1/0.
  • Null: null menjadi sel kosong.
  • Objek bersarang: Seperti dijelaskan sebelumnya, objek diratakan dengan dot-path. Namun, jika ada properti dengan nama yang mengandung titik (misal "nama.depan"), notasi dot-path dapat menyebabkan ambiguitas. Alat ini tidak menyediakan opsi untuk mengganti separator path.
  • Array of objects vs array of arrays: Jika JSON berisi array di mana elemennya campuran (ada objek dan array), alat mungkin menolak input. Pastikan semua elemen memiliki struktur yang identik.

Kesimpulannya, konversi ini bersifat destruktif. Anda tidak bisa mengembalikan file CSV ke JSON asli tanpa kehilangan informasi tipe dan hierarki. Oleh karena itu, simpan file JSON asli Anda untuk keperluan arsip.

Siapa yang Membutuhkan Konversi Ini dan Kapan

Alat ini berguna untuk skenario berikut:

  • Anda mendapat data dari API dalam format JSON dan perlu memuatnya ke spreadsheet (Excel, Google Sheets, LibreOffice Calc) untuk analisis lebih lanjut.
  • Anda perlu mengimpor data ke basis data yang hanya menerima CSV, seperti MySQL LOAD DATA atau PostgreSQL COPY.
  • Anda bekerja dengan data sensitif dan tidak ingin mengunggah file JSON ke layanan konversi online. Proses client-side menjamin data tetap di perangkat Anda.
  • Anda membutuhkan delimiter non-standar (misalnya titik koma) karena lokal spreadsheet Anda menggunakan koma sebagai desimal.
  • Anda sedang membangun pipeline data cepat dan butuh konversi sederhana tanpa instalasi perangkat lunak tambahan.

Alat ini bukan untuk konversi massal atau file JSON yang sangat besar. Karena berjalan di peramban, kinerja bergantung pada memori perangkat Anda. File dengan ribuan baris dan objek bersarang dalam mungkin menyebabkan peringatan waktu terlalu lama.

FAQ (Pertanyaan yang Sering Diajukan)

1. Apa yang terjadi jika JSON saya berisi array campuran, misalnya ada objek dan angka dalam satu array? Alat hanya menerima array yang seragam: semua elemen harus objek dengan struktur properti yang sama, atau semua elemen harus array dengan panjang yang konsisten. Jika tidak, akan muncul error "JSON ini tidak valid atau tidak berbentuk tabel.". Anda perlu merapikan data terlebih dahulu.

2. Apakah leading zero dalam angka (misal 00123) akan dipertahankan? Jika dalam JSON angka tersebut ditulis sebagai 123 (tanpa kutip), maka setelah konversi menjadi "123" dan leading zero hilang. Sebaliknya, jika ditulis sebagai string "00123", maka akan menjadi "00123" di CSV. Untuk mempertahankan leading zero, pastikan nilai tersebut adalah string di file JSON.

3. Bisakah saya mengubah notasi dot-path menjadi format lain, misalnya kurung siku? Tidak, alat ini hanya menggunakan notasi dot-path. Jika Anda membutuhkan format lain, Anda harus melakukan transformasi terpisah sebelum mengunggah file.

4. Mengapa file CSV saya berisi baris dengan tanda kutip ganda berlebih? Itu normal jika ada nilai yang mengandung koma, baris baru, atau tanda kutip. Alat mengikuti aturan RFC 4180: nilai tersebut diapit kutip ganda, dan setiap kutip ganda di dalam nilai digandakan (misal """Hello"" said she" menjadi kata-kata kutip dalam sel). Ini adalah praktik standar agar CSV dapat dibaca dengan benar.

5. Apakah alat ini bisa menangani file JSON dengan 100.000 baris? Batasnya adalah 10.000 baris. Jika file terlalu besar, akan muncul peringatan "Konversi ini memakan waktu terlalu lama. Coba gunakan file yang lebih kecil.".

6. Jika saya memilih delimiter tab, apakah ekstensi file berubah otomatis? Tidak, file tetap diunduh dengan ekstensi .csv. Anda dapat mengganti ekstensi menjadi .tsv setelah unduhan agar program spreadsheet menanganinya dengan benar.