Konverter JSON ↔ CSV
Konversikan JSON ke CSV dan CSV kembali ke JSON langsung di browser Anda. Tempel array objek untuk membuat tabel yang siap dipakai di spreadsheet, atau tempel CSV untuk mendapatkan JSON terstruktur — dengan kendali penuh atas pemisah dan baris header.
Pemisah
Masukkan data di atas untuk melihat hasil konversi di sini.
Cara menggunakan Konverter JSON ↔ CSV
- 1
Pilih arah konversi
Gunakan tombol alih untuk memilih JSON ke CSV atau CSV ke JSON. Tombol tukar akan memindahkan hasil Anda ke kolom input sehingga Anda bisa mengonversinya kembali ke arah sebaliknya.
- 2
Tempel data Anda
Tempel array JSON berisi objek, atau teks CSV, ke dalam kotak input. Konversi berjalan otomatis saat Anda mengetik.
- 3
Atur opsinya
Pilih pemisah yang sesuai dengan data Anda, dan saat membaca CSV, tentukan apakah baris pertama adalah header serta apakah angka dan boolean perlu di-parse.
- 4
Salin hasilnya
Tinjau hasil konversi dan salin ke papan klip Anda, siap dimasukkan ke spreadsheet, basis data, atau kode Anda.
Mengubah Larik JSON menjadi CSV Siap-Spreadsheet
Pemetaan inti: objek menjadi baris, kunci menjadi kolom
CSV adalah kisi datar dua dimensi — baris dan kolom — sedangkan JSON adalah sebuah pohon. Oleh karena itu konversi yang masuk akal adalah yang spesifik: sebuah larik objek di tingkat teratas, di mana setiap objek adalah satu rekam. Setiap objek menjadi satu baris data tunggal, dan gabungan semua kunci di seluruh objek menjadi baris header. Tempel sebuah larik berisi tiga rekam orang dengan ruas name dan role, maka Anda mendapat satu baris header berisi name dan role yang diikuti tiga baris.
Mengumpulkan kunci di seluruh objek, bukan hanya yang pertama, itulah yang menjaga data tak rata tetap selaras. Jika rekam pertama Anda memiliki name dan email tetapi yang kedua menambahkan ruas phone, pengonversi tetap memancarkan kolom phone dan cukup membiarkan sel phone pada baris pertama kosong. Urutan diambil dari kemunculan pertama, sehingga kolom-kolomnya terbaca dalam urutan yang dapat diprediksi dan stabil.
Mengapa larik objek adalah bentuk masukan yang tepat
Sebuah angka tunggal atau larik string telanjang tidak memiliki bentuk tabular yang alami, sehingga konvensi larik-objek hadir untuk menghilangkan kerancuan itu. Setiap elemen menjadi sebuah baris; setiap nama ruas menjadi sebuah kolom. Sebuah objek tunggal hanyalah kasus satu-baris — alat ini membungkus satu objek menjadi tabel satu-baris yang headernya adalah kunci-kuncinya — tetapi konvensi ini benar-benar bersinar untuk daftar, yang persis merupakan bentuk yang dikembalikan sebagian besar endpoint REST untuk sumber daya daftar: sebuah endpoint users, sebuah endpoint orders, sebuah endpoint hasil-pencarian. Itulah sebabnya mengekspor respons API ke spreadsheet adalah alasan paling umum orang menggunakan konversi ini.
Jika data sebenarnya Anda terbungkus satu tingkat lebih dalam, misalnya sebuah objek yang ruas results-nya menyimpan larik yang Anda pedulikan, angkat dulu larik dalam itu keluar dan tempel sendirian. Memberi pengonversi larik itu secara langsung adalah yang menghasilkan tabel yang bersih alih-alih satu baris yang membingungkan.
Bagaimana objek dan larik bersarang ditangani
CSV tidak memiliki konsep kedalaman, sehingga sebuah nilai yang dirinya sendiri merupakan objek atau larik tidak dapat memuai menjadi lebih banyak kolom tanpa menciptakan skema perataan. Alat ini menempuh rute yang dapat diprediksi dan dapat dibalik: sebuah nilai bersarang diserialisasikan sebagai teks JSON ringkas di dalam satu sel. Sebuah ruas address yang menyimpan street dan city menjadi satu sel yang berisi objek kecil itu sebagai string JSON, dikutip agar koma di dalamnya tidak merusak barisnya.
Itu menjaga data tetap utuh dan dapat-dibolak-balikkan, tetapi tidak nyaman dibaca dalam spreadsheet. Ketika rekam Anda benar-benar hierarkis — konfigurasi yang bersarang dalam, struktur pohon, apa pun yang berisi larik dari larik — CSV adalah sasaran yang salah dan representasi JSON atau YAML akan jauh lebih melayani Anda. CSV bersinar untuk data yang datar dan menyerupai-rekam.
Pengutipan dan escaping, bagian yang diam-diam merusak berkas
Alasan penggabungan string yang naif menghasilkan CSV yang rusak adalah karena pembatas dapat muncul di dalam datanya. Sebuah nilai city berupa "Portland, Oregon" mengandung sebuah koma; ditulis mentah, ia akan terpecah menjadi dua sel dan menggeser setiap kolom setelahnya. Pengonversi mengikuti konvensi umum RFC 4180: setiap ruas yang mengandung pembatas, kutip ganda, atau pemutus baris dibungkus dalam kutip ganda, dan setiap kutip ganda yang sudah ada di dalam nilai itu digandakan.
Jadi sebuah nilai yang mengandung kata she said "hi" dipancarkan dengan kutip pengapit dan kutip dalamnya digandakan, dan sebuah nilai dengan baris baru yang tertanam dibungkus agar pemutus barisnya tetap di dalam satu sel alih-alih memulai baris baru. Inilah persis pengkodean yang diharapkan spreadsheet saat impor, itulah sebabnya berkas yang dikutip dengan benar terbuka dengan bersih sementara berkas buatan-tangan menyebarkan data ke seluruh kisi.
Memilih pembatas
Koma adalah default dan huruf C dalam CSV, tetapi ia tidak cocok ketika data Anda penuh dengan koma atau ketika lokal spreadsheet Anda menggunakan koma sebagai pemisah desimal. Karena alasan itu sebagian besar Eropa berdefault ke titik koma, dan analis sering lebih menyukai karakter tab karena tab hampir tidak pernah muncul di dalam nilai ruas yang sebenarnya, mengelak sebagian besar pengutipan.
Sesuaikan pembatas dengan ke mana berkas itu akan dipakai. Jika spreadsheet seorang rekan terus menjejalkan setiap baris ke dalam kolom A, penyebab yang biasa adalah ketidakcocokan pembatas — bergantilah antara koma, titik koma, dan tab sampai kolom-kolomnya terpecah dengan benar di mesin mereka.
Membolak-balik kembali ke JSON
Konversi ini berjalan dua arah. Tukar ke CSV-ke-JSON dan baris header memberi nama kunci-kuncinya sementara setiap baris berikutnya menjadi sebuah objek, yang praktis ketika seorang non-pengembang menyerahkan Anda sebuah spreadsheet dan Anda membutuhkan data terstruktur untuk sebuah API atau skrip impor. Satu peringatan menentukan perjalanan bolak-balik ini: sel CSV adalah teks tanpa tipe, jadi sebuah 42 yang dibaca kembali dari CSV adalah string 42, bukan angka, kecuali Anda mengaktifkan penguraian bertipe.
Aktifkan opsi parse-numbers-and-booleans untuk mengubah teks numerik biasa dan true/false menjadi nilai JSON yang sesungguhnya dalam perjalanan kembali. Bahkan begitu, perlakukan perjalanan bolak-balik sebagai lossy secara semangat — pengutipan menormalkan, informasi tipe direkonstruksi secara heuristik, dan setiap JSON-bersarang-dalam-sel harus diurai lagi dengan tangan. Untuk salinan setia dari data terstruktur, biarkan ia tetap dalam JSON sepanjang jalan.
Di mana ini cocok dalam alur kerja nyata
Penggunaan sehari-harinya adalah menjembatani rekayasa dengan bagian bisnis lainnya: ekspor sebuah daftar API ke CSV agar terbuka di spreadsheet, masuk ke dasbor BI, atau mengisi sebuah templat impor massal. Analis mendapat kisi yang dapat mereka pivot dan grafikkan; Anda terhindar dari menulis skrip ekspor sekali pakai. Karena seluruh konversi terjadi di peramban Anda, Anda dapat melakukan ini dengan data produksi — riwayat pesanan, daftar pengguna, metrik internal — tanpa mengirim satu pun darinya ke server pihak ketiga.
Tip praktis untuk ekspor yang bersih: normalkan rekam Anda sebelum mengonversi. Pastikan setiap objek menggunakan nama ruas yang sama, angkat larik keluar dari objek pembungkus mana pun, dan putuskan sejak awal apakah ruas bersarang sebaiknya diratakan dalam kode Anda atau dibiarkan sebagai JSON-dalam-sel. Beberapa menit membentuk JSON menghasilkan CSV yang tidak butuh pembersihan setelah impor.
Pertanyaan yang sering diajukan
Bagaimana cara mengonversi JSON ke CSV?
Format CSV apa yang digunakan konverter ini?
Bisakah konverter ini mengubah CSV kembali menjadi JSON?
Bagaimana objek bersarang ditangani?
Apakah data saya diunggah ke server?
Alat terkait
Lanjutkan dengan alat praktis ini