Cara Mengonversi JSON ke CSV untuk Excel dan Google Sheets
Mengapa JSON dan CSV Dibuat untuk Tugas yang Berbeda
JSON dan CSV dibuat untuk dunia yang sama sekali berbeda. JSON (JavaScript Object Notation) merepresentasikan data terstruktur dan hierarkis. JSON bisa menangani objek bersarang (nested objects), array di dalam array, dan berbagai tipe data campuran dengan mudah, makanya format ini jadi standar untuk API dan konfigurasi aplikasi. CSV (Comma-Separated Values) adalah kebalikannya: sebuah tabel datar yang simpel. Setiap baris harus punya jumlah kolom yang sama. Tidak ada nesting. Perbedaan mendasar ini berarti kamu tidak bisa begitu saja mengganti nama file .json menjadi .csv dan berharap semuanya beres. Saat kamu menarik data dari REST API, misalnya daftar 500 data pelanggan dari CRM, kamu hampir selalu akan mendapatkannya dalam format JSON. Satu data pelanggan mungkin terlihat seperti ini: {"id": 1042, "name": "Sara Okonkwo", "email": "sara@example.com", "orders": [{"id": 88, "total": 49.99}]} Excel dan Google Sheets tidak bisa mem-parse file itu menjadi tabel yang rapi. Keduanya butuh baris-baris data yang datar. Mengonversi JSON ke CSV adalah jembatan yang memungkinkan para analis, tim marketing, dan tim operasional untuk menarik data API ke dalam aplikasi spreadsheet yang mereka gunakan sehari-hari. Konversinya mudah kalau JSON kamu cuma berupa daftar objek yang sederhana. Tapi jadi jauh lebih sulit begitu ada nesting, dan di sinilah kebanyakan orang mentok.
Apa yang Terjadi pada JSON Bersarang (Nested) Selama Konversi
Ini adalah bagian yang sering dilewatkan oleh kebanyakan tutorial, dan ini bisa bikin pusing kepala. Saat JSON kamu berisi objek atau array bersarang, alat konversi apa pun—termasuk CocoConvert—harus memutuskan cara meratakannya (flatten). Ada beberapa cara untuk melakukannya. Satu strategi adalah meratakan key yang bersarang menggunakan notasi titik (dot notation). Field seperti `address.city` akan menjadi header kolom, dan nilainya langsung masuk ke sel tersebut. Ini solusi yang bagus untuk nesting satu tingkat yang sederhana. Pendekatan lain adalah dengan mengubah nilai bersarang menjadi string ('stringify'), di mana seluruh objek atau array dijejalkan ke dalam satu sel sebagai string JSON. Cara ini memang mempertahankan semua data, tapi pada dasarnya tidak bisa dibaca di spreadsheet tanpa kerja ekstra. Strategi ketiga, dan sering kali yang paling berguna, adalah dengan memperluas array menjadi beberapa baris. Jika seorang pelanggan punya tiga pesanan, konverter akan membuat tiga baris terpisah untuk pelanggan tersebut, dengan menduplikasi field induk untuk setiap pesanan. Ini membuat data bisa langsung digunakan di spreadsheet, tapi juga bisa membuat ukuran file kamu jadi sangat besar. Secara default, CocoConvert meratakan objek bersarang dengan notasi titik dan mengubah array bersarang menjadi string. Jadi, kalau JSON kamu punya objek dua tingkat seperti {"shipping": {"method": "express", "days": 2}}, kamu akan mendapatkan kolom `shipping.method` dan `shipping.days`. Tapi jika ada array, seluruh array itu akan berakhir sebagai string di dalam satu sel. Untuk data yang sangat bersarang—tiga tingkat atau lebih, atau array berisi objek—kamu hampir pasti perlu memproses JSON-nya terlebih dahulu dengan skrip untuk mendapatkan CSV yang rapi. Tidak ada konverter online yang bisa secara ajaib menangani setiap pola nesting. Kamu benar-benar harus mengujinya dengan sampel kecil sebelum melemparkan ribuan data ke dalamnya.
Mengonversi JSON ke CSV dengan CocoConvert
Kalau JSON kamu simpel—berupa array objek yang datar atau nesting satu tingkat yang sederhana—menggunakan CocoConvert itu cepat dan tidak perlu penyiapan apa pun. Prosesnya sederhana. Pertama, buka /convert/json-to-csv. Kamu akan melihat kotak unggah dan opsi output. Unggah file .json kamu. Paket gratis CocoConvert bisa menangani file hingga 50 MB. Kalau file kamu lebih besar, kamu harus membaginya. Satu baris kode Python cepat seperti `json.dump(data[:5000], open('chunk1.json','w'))` sangat cocok untuk ini. Selanjutnya, pilih delimiter kamu. Koma adalah standar, tapi kalau kamu berada di wilayah di mana Excel mengharapkan titik koma (semicolon)—seperti di Jerman dan Prancis—kamu perlu menggantinya sebelum mengunduh. Pengaturan kecil ini sering sekali membuat orang salah. Selalu aktifkan opsi "sertakan baris header". Spreadsheet butuh baris pertama itu untuk nama kolom. Setelah itu, tinggal klik "Convert". File berisi 10.000 baris biasanya butuh kurang dari 10 detik. Lalu kamu bisa mengunduh file .csv baru kamu yang kinclong. Ini tips pro: kalau key JSON kamu punya spasi atau karakter khusus, seperti "first name" atau "unit$price", karakter itu akan menjadi header kolom apa adanya. Excel bisa menanganinya, tapi menulis rumus jadi menyebalkan karena kamu harus menggunakan huruf kolom alih-alih referensi terstruktur. Jauh lebih rapi kalau kamu mengganti nama key di JSON sebelum konversi, atau perbaiki saja nama kolom di Excel setelah kamu impor. Ini akan menyelamatkanmu dari pusing di kemudian hari.
Membuka CSV dengan Benar di Excel
Mengunduh CSV hanyalah separuh pekerjaan. Cara kamu membukanya di Excel akan menentukan hasilnya: antara tabel yang rapi atau data berantakan yang tidak berguna dalam satu kolom. Apa pun yang terjadi, jangan cuma klik dua kali file-nya. Satu-satunya metode yang andal adalah menggunakan wizard impor. Di Excel 365 dan Excel 2019, temukan di bawah Data → Get Data → From Text/CSV. Pilih file kamu, dan Excel akan menampilkan pratinjau. Ini kesempatanmu untuk mengonfirmasi delimiter. Kalau tidak cocok dengan yang kamu pilih saat konversi, semua datamu akan menumpuk di kolom A. Siapa pun yang pernah bergulat dengan impor CSV pasti tahu betul penderitaan ini. Hati-hati dengan format tanggal. Kalau JSON kamu menggunakan string ISO 8601 (seperti `2025-11-03T14:22:00Z`), Excel sering kali mengimpornya sebagai teks biasa. Kamu bisa memperbaikinya. Pilih kolomnya, buka Data → Text to Columns, pilih Delimited, klik Next dua kali, lalu atur format data kolom menjadi Date (YMD). Ini akan mengubah teks menjadi nilai tanggal sungguhan yang bisa kamu urutkan dan filter dengan benar. Untuk file besar, katakanlah 200.000 baris, Excel akan mengimpornya, tapi akan berjalan sangat lambat. Pivot table dan VLOOKUP akan jadi sangat lambat. Gunakan Power Query saja (Data → Get & Transform Data → From CSV). Power Query jauh lebih baik dalam menangani kumpulan data besar tanpa membuat Excel tidak bisa digunakan. Dan waspadai batas keras Excel: 1.048.576 baris. Kalau JSON kamu menghasilkan CSV dengan jumlah baris lebih dari itu, Excel akan diam-diam membuang semua yang melewati batas tersebut. Kalau jumlahnya mendekati angka itu, bagi file sumber kamu bahkan sebelum memulai konversi.
Mengimpor CSV ke Google Sheets
Google Sheets umumnya lebih baik dalam menangani impor CSV daripada Excel, tapi beberapa pengaturan sangat penting. Prosesnya mudah: buka sheet, buka File → Import, dan unggah CSV kamu. Di dialog yang muncul, kamu punya beberapa pilihan. Selalu atur "Lokasi impor" ke sheet baru untuk menghindari menimpa data yang sudah ada. Atur "Jenis pemisah" ke Koma (atau Kustom untuk titik koma). Ini pengaturan yang paling penting: "Konversikan teks menjadi angka, tanggal, dan formula." Kalau data kamu punya kode produk yang terlihat seperti angka (misalnya, `00847`), kamu harus menghapus centang pada kotak ini untuk mempertahankan angka nol di depan. Jika tidak, Google Sheets akan dengan 'baik hatinya' 'memperbaiki' data kamu dengan mengubahnya menjadi angka 847. Kalau kamu membiarkan konversi otomatis aktif, Sheets cukup baik dalam mem-parse tanggal ISO ke format aslinya. Sheets juga mengubah string numerik menjadi angka, yang biasanya tidak masalah tapi bisa jadi problem untuk pengenal khusus seperti itu. Kalau kamu sering melakukan ini, misalnya menarik ekspor JSON baru setiap hari Senin, jangan lakukan secara manual. Coba pelajari penggunaan fungsi `IMPORTDATA` di Google Sheets atau Google Apps Script. `IMPORTDATA` terbatas pada URL publik, jadi tidak bisa digunakan untuk data privat. Apps Script jauh lebih canggih; ia bisa mengambil data dari endpoint JSON yang terproteksi dan menuliskannya langsung ke sheet, melewati langkah CSV sama sekali. Tapi untuk pekerjaan sekali jalan atau untuk tim yang tidak punya developer, impor manual menggunakan file dari CocoConvert di /convert/json-to-csv adalah cara tercepat untuk menyelesaikan pekerjaan. Hanya butuh dua menit dan nol kode. Google Sheets punya batasannya sendiri: 100 MB per file dan 10 juta sel per spreadsheet. Sebuah CSV dengan 50.000 baris dan 20 kolom hanya 1 juta sel, jadi kamu punya banyak ruang untuk bekerja.
Menangani Kesalahan Konversi yang Umum
Kamu akan menemukan beberapa masalah umum saat mengonversi JSON ke CSV. Berikut hal-hal yang perlu diwaspadai. Key yang tidak konsisten antar objek. JSON itu fleksibel. Satu objek dalam sebuah array bisa punya field `phone` sementara objek berikutnya tidak. Konverter seperti CocoConvert menanganinya dengan membuat kolom untuk setiap key unik yang ditemukan di seluruh kumpulan data. Jika sebuah key tidak ada untuk suatu data, selnya akan dibiarkan kosong. Ini adalah cara yang benar, tapi hati-hati: file sumber yang berantakan dengan 30 struktur objek yang sedikit berbeda bisa menghasilkan CSV dengan 80 kolom, yang sebagian besar kosong. Bersihkan skema JSON kamu sebelum melakukan konversi. Unicode dan karakter khusus. File JSON hampir selalu berformat UTF-8. Kalau data kamu menyertakan karakter non-Latin (seperti Arab, Mandarin, atau huruf beraksen), kamu harus memberitahu Excel untuk mengantisipasinya. Saat kamu mengimpor melalui Data → Get Data → From Text/CSV, cari pengaturan "File Origin" di dialog pratinjau dan ubah ke `65001: Unicode (UTF-8)`. Kalau kamu lupa, semua karakter khususmu akan berubah menjadi tulisan acak (mojibake). Angka yang sangat besar. Yang satu ini samar tapi merusak. JSON bisa menangani angka yang sangat besar dengan presisi sempurna. Tapi spreadsheet tidak bisa. Baik Excel maupun Google Sheets menggunakan matematika floating point 64-bit, yang berarti mereka mulai membulatkan bilangan bulat besar setelah 9.007.199.254.740.992 (atau 2^53). Kalau JSON kamu berisi angka yang lebih besar, seperti 9007199254740993, angka itu akan dibulatkan secara diam-diam saat diimpor. Kalau kamu berurusan dengan ID bilangan bulat besar dari database, satu-satunya cara aman adalah menyimpannya sebagai string di JSON *sebelum* kamu konversi. Array kosong dan nilai null. Nilai `null` di JSON akan menjadi sel kosong di CSV, dan itu benar. Array kosong `[]` ditangani secara berbeda oleh berbagai alat. CocoConvert mengubahnya menjadi string kosong, yang merupakan pilihan terbaik untuk spreadsheet dan menghindari kebingungan.
Kapan Konverter Bukan Alat yang Tepat
Konverter online sangat cocok untuk tugas sekali jalan dan pengecekan cepat, terutama saat JSON kamu sudah datar. Tapi konverter bukanlah alat yang tepat untuk setiap pekerjaan. Kalau konversi kamu adalah bagian dari pipeline otomatis—pekerjaan ETL malam hari, pemrosesan data di CI/CD, atau apa pun yang perlu berjalan tanpamu—kamu harus menggunakan solusi berbasis skrip. Alat online tidak cukup andal untuk otomatisasi. Library pandas di Python adalah standar industri untuk ini; kamu bisa membaca JSON dengan `pd.read_json()`, meratakannya dengan `pd.json_normalize()`, dan menuliskannya ke CSV dengan `.to_csv()` hanya dalam beberapa baris. Bagi para ahli command-line, `jq` adalah alternatif yang sangat kuat di lingkungan Unix: `jq -r '(.[0] | keys_unsorted) as $keys | $keys, (.[] | [.[$keys[]]] | @csv)' input.json > output.csv` akan menyelesaikan pekerjaan untuk array datar. Saat JSON kamu sangat bersarang (tiga tingkat atau lebih, atau berisi array objek), tidak ada konverter online yang akan memberimu CSV yang rapi begitu saja. Masalahnya ada di struktur; kamu perlu menulis skrip kustom yang memahami skema spesifikmu untuk meratakannya dengan benar. Satu format lain yang perlu kamu tahu adalah JSON Lines (.jsonl), di mana setiap baris adalah objek JSON terpisah. CocoConvert menangani file-file ini dengan sempurna, jadi kamu bisa mengunggahnya apa adanya. Pastikan saja file kamu tidak mencampur JSON biasa dengan JSON Lines, atau kamu harus membersihkannya terlebih dahulu. Untuk hal lainnya? Ekspor JSON dari platform SaaS, respons API yang kamu butuhkan dalam spreadsheet, file konfigurasi yang ingin kamu tinjau sebagai tabel—langsung saja buka /convert/json-to-csv. Unggah file kamu, dan kamu akan mendapatkan CSV yang rapi dalam waktu kurang dari satu menit.