Konverter CSV ke JSON - Alat Konversi File Gratis Online
Konversikan CSV ke JSON dan JSON ke CSV secara instan di browser Anda. Konversi data yang aman dan cepat dengan pratinjau dan unduhan. Tidak perlu unggah file.
Konverter Berkas CSV/JSON
Konversikan antara format CSV dan JSON dengan mudah. Unggah berkas Anda, pratinjau data, dan unduh hasil konversi.
Konverter CSV ke JSON
Konverter JSON ke CSV
Dokumentasi
Apa itu konverter CSV ke JSON?
Konverter CSV ke JSON adalah alat yang mengubah data dari format CSV (Comma-Separated Values) menjadi format JSON (JavaScript Object Notation), atau sebaliknya. Konverter ini berjalan sepenuhnya di dalam peramban web. Konverter ini tidak pernah mengirim file yang diunggah ke server, sehingga data tetap berada di perangkat pengguna.
CSV adalah format teks biasa yang digunakan untuk menyimpan tabel, seperti spreadsheet yang diekspor dari Excel atau Google Sheets. JSON adalah format teks yang dibangun dari pasangan kunci-nilai dan banyak digunakan untuk memindahkan data antara aplikasi web dan API. Karena kedua format tersebut mengatur data dengan cara yang berbeda, konversi di antara keduanya memerlukan seperangkat aturan yang ditetapkan, seperti dijelaskan di bawah.
Cara mengonversi CSV ke JSON
- Klik "Upload CSV File" dan pilih file
.csvdari perangkat. - Alat ini menampilkan pratinjau isi file mentah.
- Klik "Convert to JSON". Alat ini membaca baris pertama sebagai nama kolom dan mengubah setiap baris lainnya menjadi satu objek JSON.
- Hasilnya muncul di pratinjau keluaran, dengan format indentasi.
- Klik "Download JSON" untuk menyimpannya sebagai file
.json, atau "Copy JSON" untuk menyalin teksnya.
Cara mengonversi JSON ke CSV
- Klik "Upload JSON File" dan pilih file
.json. File tersebut harus berisi array JSON yang terdiri atas objek, misalnya[{"Name":"Ann"},{"Name":"Bo"}]. - Alat ini menampilkan pratinjau teks JSON mentah.
- Klik "Convert to CSV". Alat ini mengumpulkan setiap kunci yang digunakan di seluruh objek dan mengubah masing-masing menjadi satu kolom.
- Hasilnya muncul di pratinjau keluaran sebagai teks CSV.
- Klik "Download CSV" untuk menyimpannya sebagai file
.csv, atau "Copy CSV" untuk menyalin teksnya.
Tidak ada batas unggahan yang diberlakukan oleh server karena tidak ada data yang keluar dari peramban. File yang sangat besar tetap dapat memperlambat tab peramban, karena seluruh file disimpan di memori selama proses konversi.
Aturan konversi CSV ke JSON
Konverter membaca baris pertama file sebagai nama kolom. Setiap baris berikutnya menjadi satu objek JSON, dengan nama kolom sebagai kuncinya. Baris yang memiliki lebih banyak nilai daripada jumlah tajuk mendapat kunci tambahan yang dinamai berdasarkan posisi absolutnya dalam baris. Jadi, dengan 3 tajuk, nilai keempat memiliki kunci field_4, nilai kelima field_5, dan seterusnya, sehingga tidak ada data yang hilang. Baris yang memiliki lebih sedikit nilai mendapat string kosong untuk kunci yang hilang. Jika dua tajuk memiliki nama yang sama, tajuk kedua diubah namanya dengan sufiks, sehingga a, a menjadi kunci a dan a_2.
Konverter mengikuti aturan CSV yang ditetapkan dalam RFC 4180, yaitu standar teknis untuk format tersebut. Koma di dalam suatu bidang hanya diperlakukan sebagai nilai di dalam bidang itu, bukan sebagai pemisah kolom, jika bidang tersebut diapit tanda kutip ganda, misalnya "Smith, John". Jeda baris di dalam tanda kutip dipertahankan sebagai bagian dari nilai, bukan diperlakukan sebagai baris baru. Dua tanda kutip ganda di dalam bidang yang dikutip mewakili satu karakter tanda kutip literal.
Hanya koma yang dikenali sebagai pemisah kolom; alat ini tidak mendeteksi atau mendukung titik koma, tab, atau pemisah lainnya.
Setiap nilai diperiksa dan dikonversi ke suatu tipe:
- Nilai yang ditulis sebagai angka biasa, seperti
42atau-3.5, menjadi angka JSON. - Teks
trueataufalse, dalam kapitalisasi huruf apa pun, menjadi boolean JSON. - Selain itu tetap menjadi string JSON, termasuk sel kosong yang menjadi string kosong.
- Angka dengan nol di depan, seperti
00512, tetap menjadi string karena nol di depan sering memiliki makna, seperti pada kode pos atau nomor ID. - Suatu nilai hanya diterima sebagai angka jika saat ditulis kembali menghasilkan teks yang persis sama. Bilangan bulat panjang di atas 9,007,199,254,740,991, yaitu bilangan bulat terbesar yang dapat disimpan secara tepat oleh angka JavaScript, biasanya gagal dalam pemeriksaan tersebut dan tetap menjadi string, sehingga tidak ada digit yang hilang.
- Nilai yang sejak awal diapit tanda kutip dalam file selalu dipertahankan sebagai string, meskipun tampak seperti angka, karena pengutipan dianggap sebagai penandaan oleh pembuatnya bahwa nilai tersebut adalah teks.
Baris kosong dalam file dilewati dan tidak menghasilkan objek kosong.
Aturan konversi JSON ke CSV
Konverter memeriksa setiap objek dalam array dan mengumpulkan seluruh kumpulan kunci yang digunakan di semuanya. Kunci-kunci tersebut menjadi tajuk kolom CSV, dalam urutan pertama kali ditemukan. Jika suatu objek tidak memiliki kunci yang dimiliki objek lain, selnya dibiarkan kosong, bukan menghasilkan kesalahan.
JSON ke CSV tidak meratakan objek bertingkat menjadi kolom-kolom terpisah. Nilai yang berupa objek atau array ditulis kembali sebagai teks JSON di dalam satu sel, sehingga {"b": 1} menjadi sel {"b":1} dan [1, 2] menjadi sel [1,2]. Tidak ada yang hilang, tetapi bagian bertingkat tetap berada dalam satu kolom, bukan dipecah. Ratakan JSON bertingkat secara manual terlebih dahulu jika setiap bagiannya memerlukan kolom sendiri.
Nilai null dan kunci yang dimiliki oleh satu objek tetapi tidak dimiliki objek lain sama-sama menghasilkan sel kosong.
Nilai sel yang mengandung koma, tanda kutip, atau jeda baris diapit tanda kutip ganda dalam keluaran, dan setiap tanda kutip di dalamnya digandakan, sesuai dengan aturan pelolosan CSV di atas.
JSON masukan harus berupa array, dan setiap item di dalamnya harus berupa objek. Angka, string, null, atau array bertingkat sebagai pengganti objek menghasilkan kesalahan "JSON must be an array of objects". Array yang sama sekali tidak memiliki item menghasilkan kesalahan "The JSON array is empty. Add at least one object to convert." File yang diunggah tanpa isi sama sekali menghasilkan kesalahan "The uploaded file is empty."
Contoh perhitungan
File CSV awal:
1Name,Age,Member
2Ann Lee,29,true
3"Bo, Jr.",7,false
4Konversi ke JSON menghasilkan:
1[
2 {
3 "Name": "Ann Lee",
4 "Age": 29,
5 "Member": true
6 },
7 {
8 "Name": "Bo, Jr.",
9 "Age": 7,
10 "Member": false
11 }
12]
13Perhatikan bahwa "Bo, Jr." mempertahankan komanya karena bidang tersebut dikutip dalam file sumber, sedangkan Age dan Member masing-masing menjadi angka dan boolean.
Mengonversi kembali JSON yang sama ke CSV, dengan satu baris tambahan yang tidak memiliki Age, menghasilkan:
1Name,Age,Member
2Ann Lee,29,true
3"Bo, Jr.",7,false
4Cy Tan,,true
5Nilai Age yang hilang menjadi sel kosong, dan koma dalam "Bo, Jr." menyebabkan bidang tersebut kembali dikutip saat ditulis.
Penggunaan umum
- Analisis data: mengubah ekspor CSV dari spreadsheet atau alat analitik menjadi JSON agar dapat diproses dengan JavaScript, kemudian mengubah hasilnya kembali menjadi CSV untuk laporan.
- Pengujian API: pengembang yang membuat API penerima unggahan CSV dapat mengonversi file contoh menjadi JSON untuk memeriksa apakah pengurai menghasilkan objek yang diharapkan.
- Migrasi data: memindahkan catatan dari sistem yang mengekspor CSV ke sistem yang hanya menerima JSON, atau sebaliknya.
- Pemeriksaan cepat: mengubah file JSON menjadi CSV berbentuk tabel agar lebih mudah dibaca, atau sebaliknya.
Pustaka pemrograman menyediakan konversi yang sama untuk pekerjaan yang lebih besar atau berulang, seperti modul csv dan json dalam Python, atau pandas. Alat baris perintah seperti csvkit dan jq menangani konversi dan pemfilteran dari terminal. Pilihan tersebut sesuai untuk pemrosesan batch; alat peramban ini sesuai untuk file satu kali tanpa perlu memasang apa pun.
Pertanyaan yang sering diajukan
Apakah file yang diunggah dikirim ke server? Tidak. Konversi berjalan dalam JavaScript di dalam tab peramban. File dibaca dari perangkat lokal dan tidak pernah dikirim.
Apakah konverter mendukung pemisah selain koma, seperti titik koma atau tab? Tidak. Versi saat ini hanya membaca nilai yang dipisahkan koma. File yang menggunakan pemisah berbeda harus dikonversi terlebih dahulu ke bentuk yang dipisahkan koma, misalnya dengan mengganti pemisah tersebut di editor teks.
Mengapa angka seperti 00512 tetap menjadi string teks dalam keluaran JSON?
Nol di depan biasanya memiliki makna, seperti pada kode pos, sehingga konverter mempertahankan nilai tersebut sebagai string dan tidak mengubahnya menjadi angka 512, yang akan menghilangkan nolnya.
Apa yang terjadi jika saya mengonversi JSON yang berisi objek bertingkat?
Objek bertingkat ditulis sebagai teks JSON dalam satu sel, misalnya {"b":1}. Data tetap ada, tetapi tidak dipecah menjadi kolom terpisah. Ratakan data bertingkat terlebih dahulu jika setiap bidang memerlukan kolomnya sendiri.
Bagaimana jika JSON saya bukan array objek?
Alat ini menampilkan kesalahan dan tidak mengonversi apa pun. Masukan harus berupa array JSON yang setiap itemnya merupakan objek, misalnya [{"a":1},{"a":2}].
Apakah baris pertama file CSV selalu harus berupa baris tajuk? Ya. Konverter selalu memperlakukan baris pertama sebagai nama kolom. File tanpa baris tajuk akan membuat baris data pertamanya salah dibaca sebagai tajuk.
Referensi
- Shafranovich, Y. "Common Format and MIME Type for Comma-Separated Values (CSV) Files." RFC 4180, IETF, Oktober 2005. https://www.rfc-editor.org/rfc/rfc4180
- Bray, T., ed. "The JavaScript Object Notation (JSON) Data Interchange Format." RFC 8259, IETF, Desember 2017. https://www.rfc-editor.org/rfc/rfc8259
- "Working with JSON." MDN Web Docs, Mozilla. https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Scripting/JSON