tooly

Konversi CSV ke JSON online

Tempel hasil ekspor CSV dan dapatkan array objek JSON yang siap dipakai untuk API, skrip, atau file konfigurasi — pemisah terdeteksi otomatis, tanpa upload.

Semuanya berjalan di browser Anda — tidak ada yang dikirim

Cara menggunakan

  1. 1

    Tempel CSV Anda — baris pertama harus berisi header.

  2. 2

    Biarkan “deteksi angka dan boolean” aktif kecuali semua nilai harus tetap berupa string.

  3. 3

    Salin JSON-nya atau unduh sebagai file.

Mengapa mengubah spreadsheet menjadi JSON

CSV adalah format ekspor spreadsheet, CRM, bank, dan dasbor analitik. JSON adalah format yang dikonsumsi API web, kode JavaScript, database NoSQL, dan sebagian besar sistem konfigurasi. Konversi ini terus-menerus dibutuhkan: mengisi database uji dari sheet yang dikelola rekan kerja, mengubah daftar produk menjadi fixture untuk prototipe front-end, memasukkan daftar redirect atau terjemahan ke skrip build, atau mengirim sekumpulan record ke API yang hanya menerima JSON.

Hasilnya di sini adalah array JSON dengan satu objek per baris data. Baris header menyediakan nama properti, jadi sheet dengan kolom sku, title, dan price menjadi objek dengan tepat tiga kunci itu, siap untuk di-loop.

Cara parser membaca CSV Anda

CSV terlihat sepele sampai sebuah nilai berisi karakter pemisah. Parser mengikuti aturan RFC 4180, yang paling mendekati standar untuk CSV:

  • Field yang diapit tanda kutip ganda boleh berisi pemisah, baris baru, dan tanda kutip. "Smith, John" tetap menjadi satu nilai.
  • Tanda kutip di dalam field berkutip ditulis dua kali: "6"" pipe" menjadi 6" pipe.
  • Baris boleh diakhiri CRLF gaya Windows atau LF gaya Unix; keduanya ditangani.
  • Byte order mark di awal, yang ditambahkan Excel saat menyimpan sebagai CSV UTF-8, dihapus agar tidak menempel pada nama kolom pertama.
  • Baris yang benar-benar kosong dilewati.

Pemisah dipilih dengan menghitung koma, titik koma, tab, dan garis vertikal di baris pertama, lalu mengambil yang paling sering muncul. Cara ini berhasil untuk hampir semua ekspor, tetapi bergantung pada header yang representatif. Jika header hanya berisi satu kolom tanpa pemisah, koma yang diasumsikan.

Spasi di sekitar nama header dipangkas, jadi price menjadi kunci price. Nilai di baris data dipertahankan persis seperti tertulis, termasuk spasi di awal atau akhir.

Nilai bertipe versus string

Dengan "Deteksi angka dan boolean" diaktifkan, setiap sel dicek dengan daftar aturan singkat:

  • Bilangan bulat dan desimal biasa seperti 42, -7, dan 19.99 menjadi angka JSON, selama jumlah digitnya paling banyak 15.
  • Tepat true dan false, dalam huruf kecil, menjadi boolean. TRUE, Yes, atau 1 tetap apa adanya.
  • Sel kosong menjadi null.
  • Selebihnya, termasuk deretan digit yang lebih panjang, 1.5e3, +5, .5, 1,234, dan tanggal, tetap berupa string.

Ini praktis untuk sebagian besar data, tetapi angka di JSON tidak membawa format, jadi beberapa nilai berubah makna saat diberi tipe:

  • Nol di depan hilang. Kode pos AS 02134 menjadi 2134, dan nomor artikel 007 menjadi 7.
  • Deretan digit panjang akan kehilangan presisi. Angka JavaScript hanya akurat hingga sekitar 15 digit signifikan, jadi nilai dengan lebih banyak digit, seperti ID pesanan 20 digit atau nomor kartu, dipertahankan sebagai string alih-alih dibulatkan.
  • Nomor telepon tanpa tanda plus atau spasi juga menjadi angka.

Jika ada kolom yang berisi pengenal, bukan kuantitas, matikan opsi ini dan konversikan beberapa field yang memang numerik di kode Anda sendiri. Dengan opsi dimatikan, sel kosong menjadi string kosong, bukan null.

Saat hasilnya terlihat salah

  • Semua masuk ke satu kunci. Pemisah tidak terdeteksi, biasanya karena header memakai pemisah yang berbeda dari data, atau tidak ada pemisah sama sekali. Periksa baris pertama.
  • Nilai bergeser satu kolom. Sebuah field berisi pemisah tetapi tidak dikutip. Ekspor ulang dari aplikasi sumber alih-alih mengedit manual; spreadsheet otomatis mengutip field seperti itu.
  • Kolom tambahan hilang. Kunci hanya diambil dari header, jadi sel di luar kolom header terakhir dibuang. Baris dengan sel lebih sedikit mendapat null atau string kosong untuk yang hilang.
  • Dua kolom, satu kunci. Jika header mengulang sebuah nama, kolom yang belakangan menimpa yang lebih awal di setiap objek. Ganti nama salah satunya dulu.
  • Karakter aneh seperti é. File disimpan dalam encoding lama. Simpan ulang sebagai CSV UTF-8 lalu tempel sekali lagi.

Bekerja dengan hasilnya

JSON dicetak dengan indentasi 2 spasi, yang nyaman untuk dibaca dan di-commit ke repositori. Untuk me-minify-nya bagi request API atau mengubah indentasinya, proses dengan formatter JSON. Untuk kembali ke arah sebaliknya setelah diedit, JSON ke CSV membangun ulang sheet dari array. Konversi berjalan sepenuhnya di dalam halaman, yang penting jika ekspor berisi nama pelanggan, email, atau gaji.

FAQ

Pemisah apa saja yang didukung?

Koma, titik koma, tab, dan pipe terdeteksi otomatis dari baris pertama.

Apakah field berkutip ditangani?

Ya — tanda kutip, koma di dalam field, baris baru di dalam kutip, dan kutip ganda mengikuti aturan RFC 4180.

Apa fungsi “deteksi angka dan boolean”?

“42” menjadi 42, “true” menjadi true, dan sel kosong menjadi null. Deretan digit yang lebih panjang dari 15 digit tetap berupa string agar nilainya persis. Matikan untuk menjaga semuanya tetap string, misalnya untuk kode pos berawalan nol.

Apakah data saya diunggah?

Tidak. Parsing terjadi di browser Anda.

Bisa mengonversi file Excel?

Simpan sheet-nya sebagai CSV dulu (File → Save as → CSV UTF-8), lalu tempel di sini.

Alat terkait