Dibangun dengan AI canggih di perangkat Anda dan akselerasi perangkat keras untuk performa profesional dengan privasi tanpa kompromi.AI di perangkat — profesional dan privat.
CSV ke JSON
Konversi CSV ke JSON di perangkat Anda — objek, JSON Lines, nilai bertipe, kunci bersarang.
- Tanpa unggah
- 5 bentuk keluaran
- Angka & boolean sungguhan
- Hingga 25 MB gratis
Letakkan berkas CSV di sini
.csv .tsv .txt .psv · hingga 25.0 MB gratis
Apa tingkat teratas dokumen. Masing-masing berkas berbeda, bukan tata letak berbeda.
Dua spasi enak dibaca pada diff; diperkecil paling ringkas.
Nol di depan, id panjang, nomor telepon, Infinity dan NaN selalu dibiarkan sebagai teks.
Sel kosong menjadi apa.
Mode otomatis membaca berkas: hanya nilai yang menyatakan konvensinya sendiri yang ikut menentukan.
Header ganda diganti namanya dan yang kosong diberi nomor, jadi tidak ada kolom yang hilang.
Dideteksi dari berkas. Ubah salah satunya bila pratinjau tampak salah.
Satu batch diunduh sebagai satu ZIP. Menggabungkan menyatukan semua berkas jadi satu dokumen.
Gratis: 1 berkas sekaligus, hingga 25.0 MB. Semua bentuk keluaran dan opsi termasuk.
Cara mengonversi CSV ke JSON
- 1
Tambahkan CSV Anda
Letakkan atau pilih berkas .csv, .tsv, .txt, atau .psv. Pemisah, karakter kutip, dan encoding dideteksi dari berkas dan ditampilkan agar Anda dapat mengubahnya.
- 2
Pilih bentuk keluaran
Array objek untuk API, JSON Lines untuk impor basis data, peta berkunci untuk pencarian, array per kolom untuk dataframe, atau array of array untuk data matriks.
- 3
Tentukan cara nilai dibaca
Aktifkan penentuan tipe agar mendapat angka, boolean, dan null sungguhan alih-alih string, lalu pilih apakah sel kosong menjadi null, string kosong, atau dihilangkan.
- 4
Konversi dan ekspor
Tekan Konversi, lalu salin seluruh dokumen ke papan klip atau unduh. Tidak ada yang meninggalkan perangkat Anda.
Apa yang diberikan alur CSV → JSON ini
Dibuat untuk perjalanan dari spreadsheet ke API: kendalikan bagaimana baris dipisah, bagaimana byte didekode, menjadi apa setiap nilai, dan bagaimana header menjadi kunci — lalu ambil JSON untuk papan klip atau berkas untuk diunduh tanpa meninggalkan mesin Anda.
- Lima bentuk keluaran, bukan satu — Array objek untuk API, JSON Lines untuk impor basis data, peta berkunci untuk pencarian, array per kolom untuk dataframe, atau array of array untuk data matriks.
- Nilai sungguhan, bukan string — Angka, boolean, dan null keluar sebagai nilai JSON alih-alih teks berkutip — dengan perlindungan pada kasus yang akan kehilangan informasi.
- Pemisah dan kutip yang bisa disetel — Deteksi dari berkas atau paksa koma, titik koma, tab, atau garis tegak, dengan kutip ganda, tunggal, atau tanpa kutip untuk ekspor yang melanggar aturan umum.
- Encoding yang memperbaiki teks kacau — Tanda urutan byte mengalahkan pilihan Anda, ekspor UTF-16 terbaca benar, dan ISO-8859-1 adalah dekoder Latin-1 sungguhan, bukan alias.
- Objek, matriks, atau rekaman bersarang — Aktifkan baris pertama sebagai kunci untuk baris { "kolom": "nilai" }, pertahankan array 2D jika Anda sudah menormalkan di kode, atau lipat header bertitik menjadi objek bersarang.
- Salin, unduh, ulangi — JSON rapi siap untuk Postman, jq, atau untuk dikomit ke repositori — buat ulang seketika setelah setiap penyesuaian.
- Eksekusi yang mengutamakan privasi — Pratinjau muncul begitu berkas dibaca — tanpa antrean, tanpa unggah, tanpa menunggu.
Memilih bentuk keluaran
Bentuk menentukan apa tingkat teratas dokumen, dan yang tepat sepenuhnya bergantung pada apa yang akan membacanya. Masing-masing adalah berkas yang berbeda, bukan tata letak berbeda dari berkas yang sama.
- Array objek — [{ "id": 1, "name": "Ada" }] — bawaan, dan inilah yang diharapkan API HTTP, aplikasi JavaScript, atau struct bertipe.
- Array of array — [["id","name"],[1,"Ada"]] — setiap sel menurut posisi, tanpa memakai baris header. Tepat untuk data matriks, atau berkas yang headernya ganda atau tidak ada.
- JSON Lines (NDJSON) — Satu rekaman utuh per baris, tanpa kurung siku pembungkus dan tanpa koma antar rekaman. Inilah yang diterima mongoimport, BigQuery, dan sebagian besar pipeline log, dan tidak pernah diberi indentasi — rekaman yang melintasi beberapa baris merusak formatnya.
- Peta berkunci — { "SKU-1": { … } } — sebuah indeks, berkunci pada kolom yang Anda pilih. Tepat bila konsumen mencari rekaman berdasarkan id alih-alih menelusurinya. Dua baris dengan nilai kunci sama tidak bisa keduanya bertahan, jadi alat ini melaporkan berapa yang dibuang.
- Array per kolom — { "id": [1,2], "name": ["Ada","Grace"] } — berorientasi kolom, yang diinginkan pandas, Arrow, dan sebagian besar pustaka grafik, dan jauh lebih kecil daripada objek per baris bila kolomnya banyak.
Bagaimana nilai menjadi tipe JSON
Dengan penentuan tipe aktif, setiap sel dibaca sebagai nilai JSON yang sebenarnya alih-alih dikutip sebagai teks. Yang menarik bukan apa yang dikonversi — melainkan apa yang sengaja tidak, karena tiap kasus berikut adalah nilai yang dirusak diam-diam oleh konverter yang naif.
Apa yang dikonversi
- Angka — Bilangan bulat, desimal, dan eksponen, dengan pemisah ribuan dihapus dan konvensi 1,234.56 maupun 1.234,56 sama-sama dipahami. Tanda kurung akuntansi dibaca sebagai negatif, sehingga (1.234,50) menjadi -1234,5.
- Boolean — true, false, TRUE, FALSE, True, dan False menjadi boolean JSON sungguhan. TRUE dan FALSE adalah yang ditulis spreadsheet; bentuk huruf kecil adalah yang ditulis segala hal lainnya.
- Null — Sel kosong menjadi null secara bawaan, dan teks harfiah null atau NULL — yang ditulis ekspor basis data — juga menjadi null.
- JSON tertanam, bila diminta — Sel yang isinya sendiri array atau objek JSON dapat diurai alih-alih dikutip, dan itulah yang membuat ekspor Airtable atau Notion bisa dipakai. Nonaktif secara bawaan, karena kolom alamat yang mengandung kurung kurawal bukan struktur data.
Apa yang sengaja dibiarkan sebagai teks
- Nol di depan — 007 dan 00123 tetap string. Mengubahnya menjadi 7 dan 123 tidak bisa dibatalkan, dan nomor komponen atau kode pos bukanlah kuantitas.
- Pengenal panjang — Nomor kartu, IMEI, atau id basis data lebih dari lima belas digit signifikan tetap string. Sebagai angka JSON, 12345678901234567890 menjadi 12345678901234567000 — diam-diam, tanpa galat.
- Tanda plus di depan — +6281234567890 adalah nomor telepon, bukan bilangan bulat positif, dan menghilangkan plusnya mengubah maknanya.
- Infinity dan NaN — Keduanya bukan JSON yang sah. Konverter yang meloloskannya tidak menghasilkan berkas rusak — ia menghasilkan berkas sah yang sel-selnya diam-diam berubah menjadi null.
- Tanggal — JSON tidak punya tipe tanggal, jadi 2024-01-15 tetap persis string yang ada di berkas. Selain itu hanyalah tebakan tentang format yang tidak pernah dinyatakan berkasnya.
- Mata uang dan persentase — Rp50.000 dan 12% mempertahankan simbolnya. Menghapusnya mengubah makna nilai, dan tidak ada tempat di JSON untuk mencatat bahwa suatu angka adalah persentase.
Baris header, kunci, dan tabrakan
Baris header adalah tempat konverter paling mudah kehilangan data tanpa suara, karena setiap kegagalan di sana tetap menghasilkan dokumen yang bentuknya benar — hanya saja satu kolomnya hilang. Kasus-kasus ini ditangani alih-alih diabaikan, dan masing-masing dilaporkan di samping berkas.
- Header ganda — Berkas dengan dua kolom bernama id akan menulis yang kedua menimpa yang pertama. Yang belakangan diganti nama menjadi id_2, dan alat ini menyebutkan berapa yang diganti.
- Header kosong — Sel header kosong menjadi column_4, bernomor menurut posisinya di berkas agar jelas kolom yang mana.
- Baris header terlalu pendek — Jika badan data lebih lebar daripada headernya, kolom tambahan diberi nama alih-alih dibuang — kehilangan nilai karena baris header pendek tidak terlihat pada keluarannya.
- Huruf pada kunci — Biarkan nama persis seperti yang ditulis berkas, atau ubah ke huruf kecil, huruf besar, camelCase, atau snake_case. Penggantian nama bersifat pilihan: konverter tidak seharusnya mengganti nama secara bawaan.
- Nama yang tampak khusus — Kolom bernama __proto__ atau constructor mempertahankan namanya persis. Dokumen ditulis langsung sebagai teks alih-alih disusun menjadi objek JavaScript, sehingga nama yang tidak bisa ditetapkan di kode tetap utuh.
JSON bersarang dari header bertitik
Ekspor dari CRM dan pembuat formulir sering menulis data bersarang sebagai kolom datar bernama alamat.kota dan alamat.kodepos. Mengaktifkan penyarangan melipatnya kembali menjadi objek sungguhan, sehingga JSON-nya kembali ke bentuk yang dimiliki data sebelum diratakan.
- Titik atau garis miring — Kedua pemisah bisa dipakai, dan opsi ini nonaktif secara bawaan — kolom yang memang bernama Pendapatan.2024 tidak boleh menjadi objek tanpa Anda minta.
- Kedalaman berapa pun — a.b.c.d menyarangkan empat tingkat. Segmen kosong menyatu, jadi a..b sama dengan a.b.
- Tidak ada kolom yang hilang — Jika sebuah berkas punya alamat sekaligus alamat.kota, satu nama tidak bisa sekaligus menjadi nilai dan objek. Alih-alih membuang salah satunya, kolom bertitik mempertahankan nama datarnya semula dan alat ini menyebut kolom yang tidak bisa disarangkan.
- Tidak ada yang diganti namanya — Alternatif dari membiarkan kolom tetap datar adalah mengarang nama untuknya, dan JSON-nya jadi tidak lagi cocok dengan berkasnya. Setiap kunci pada keluaran adalah header yang memang ada di berkas, atau column_N eksplisit untuk header yang tidak ada.
Penjelasan opsi penguraian
Setiap kendali mengubah bagaimana karakter menjadi bidang dan bagaimana bidang menjadi properti JSON. Semuanya diterapkan ke berkas saat Anda mengubahnya, jadi pratinjau selalu menampilkan pengaturan saat ini.
- Pemisah — Mode otomatis menilai koma, titik koma, tab, dan garis tegak berdasarkan seberapa persegi hasil pembacaannya, bukan berdasarkan frekuensi karakternya — koma di dalam bidang berkutip tidak memengaruhi hasil. Mode manual mengalahkan berkas yang keras kepala.
- Karakter kutip — Kutip ganda adalah standarnya, tetapi ada berkas yang mengutip dengan apostrof, dan ada berkas tanpa kutip sama sekali di mana apostrof dalam sebuah nama akan terbaca sebagai kutip. Kutip hanya membuka bidang di awal bidang itu, dan itulah yang menjaga O'Brien tetap utuh.
- Lewati baris awal — Laporan sering membawa judul dan baris kosong di atas header sebenarnya. Melewatinya menjadikan baris yang benar sebagai header, dan baris dihitung sebagai baris: judul yang mengandung pemutus baris tetap satu baris.
- Baris pertama sebagai kunci — Memetakan header ke kunci JSON; matikan bila berkas tidak punya header dan setiap baris adalah data — kolom lalu dinamai column_1 dan seterusnya.
- Pangkas spasi — Aktif secara bawaan, sehingga ekspor lebar tetap membaca ' 42 ' sebagai angka 42. Matikan bila spasi dalam sebuah sel memang disengaja.
- Sel kosong — Sel kosong menjadi null, string kosong, atau kuncinya dihilangkan dari rekaman. Pada bentuk berbasis posisi — array dan array per kolom — menghilangkan nilai akan menggeser semua kolom berikutnya, jadi di sana sel kosong tetap null.
Kapan memakai tiap encoding berkas
Jika huruf atau simbol mata uang tampak salah di pratinjau, pilih dekoder lain. Mode otomatis menangani hampir semuanya; opsi manual untuk berkas yang tidak mungkin ia ketahui.
- Otomatis — Membaca tanda urutan byte bila berkas memilikinya, lalu memeriksa apakah byte-nya UTF-8 yang sah, kemudian jatuh ke Windows-1252 — yang ditulis spreadsheet berlokal Barat bila tidak diminta yang lain.
- UTF-8 — Bawaan untuk gudang data, ekspor SaaS, dan apa pun yang disimpan sebagai Unicode. Tanda urutan byte UTF-8 dibuang alih-alih menjadi bagian kunci pertama.
- UTF-16LE dan UTF-16BE — Hasil ekspor 'Teks Unicode'. Bila keliru dibaca sebagai UTF-8, berkas seperti itu menjadi satu kolom raksasa berisi karakter nol.
- Windows-1252 — Khas CSV Excel di Windows pada lokal Eropa Barat, di mana 0x92 adalah apostrof tipografis.
- ISO-8859-1 — Dekoder Latin-1 sejati, di mana setiap byte dipetakan ke titik kode bernilai sama. Kebanyakan alat mencantumkannya sebagai opsi terpisah lalu memberi Anda Windows-1252, karena standar encoding web memperlakukan namanya sebagai alias — di sini ia dekoder sungguhan, untuk berkas yang 0x80–0x9F-nya adalah kode kendali dan bukan tanda baca.
Konversi massal dan penggabungan berkas
Satu berkas sekaligus itu gratis, hingga 25 MB. Pro menambah skala dan opsi penyerahan — konversinya sendiri, dan setiap opsi yang memengaruhi kebenaran, sama persis pada kedua paket.
- Hingga 50 berkas — Antrekan satu folder ekspor dan konversikan dalam satu jalan, masing-masing dengan pemisah, encoding, dan baris header yang dideteksi sendiri.
- Satu unduhan ZIP — Satu batch diunduh sebagai satu arsip alih-alih lima puluh dialog simpan. Nama berkas diamankan untuk ekstraksi, sehingga nama dari ekspor yang tidak tepercaya tidak bisa menulis di luar folder tempat ia dibuka.
- Gabungkan menjadi satu dokumen — Menyatukan semua berkas dalam antrean menjadi satu array objek, atau satu berkas JSON Lines. Setiap berkas dibaca dengan baris headernya sendiri, jadi kolom ketiga berkas dua tidak pernah ditulis di bawah header ketiga berkas satu.
- Selebihnya gratis — Kelima bentuk keluaran, penentuan tipe, penyarangan, transformasi kunci, penimpaan per kolom, semua encoding, dan semua indentasi tersedia gratis.
Mengapa mengonversi CSV ke JSON?
JSON adalah bahasa bersama API REST, fungsi serverless, dan pemuat NoSQL. Memindahkan CSV ke JSON memungkinkan Anda memvalidasi bentuk, membandingkan keluaran, dan mengalirkan baris ke aplikasi tanpa menulis ulang parser di setiap bahasa.
- Siap untuk API dan otomatisasi — Alirkan struktur yang sama ke body fetch, alat CLI, atau penyimpanan dokumen.
- Terstruktur untuk kode — Array dan objek memetakan rapi ke tipe TypeScript, Python, atau Go setelah konversi.
- Bertipe, jadi selamat sampai tujuan — Angka JSON adalah angka bagi setiap konsumen. Sel CSV adalah teks bagi semuanya, dan setiap konsumen lalu menebak dengan cara berbeda.
- Mudah dibandingkan — JSON rapi dengan satu nilai per baris menghasilkan diff yang terbaca, yang tidak dihasilkan baris CSV satu baris.
Bagaimana konversinya bekerja
Berkas dibaca sebagai byte, didekode dengan encoding yang dinyatakan berkas atau yang Anda pilih, dipindai menjadi baris, lalu ditulis langsung sebagai teks JSON. Tidak ada spreadsheet perantara dan tidak ada perjalanan bolak-balik ke server.
- Dekode — Tanda urutan byte dibaca lebih dulu dan mengalahkan menu pilihan, karena tanda itu adalah berkas yang menyatakan encoding-nya. Tanpa tanda itu, UTF-8 yang sah dideteksi dan Windows-1252 menjadi cadangan.
- Deteksi dan pisah — Pemisah dan karakter kutip dinilai bersama pada sebuah sampel, dan baik pemenang maupun runner-up ditampilkan, sehingga keputusan yang tipis terlihat alih-alih senyap. Bidang berkutip boleh berisi pemisah dan pemutus baris.
- Tentukan tipe — Setiap sel diklasifikasikan terhadap sebuah tata bahasa alih-alih diserahkan ke parser bawaan yang serba menerima, dan itulah yang menjaga 007, 10-20, dan +1 tetap utuh alih-alih menjadi 7, sebuah tanggal, dan 1.
- Tulis — Dokumen ditulis per blok dan dirakit sebagai berkas alih-alih sebagai satu string raksasa, itulah sebabnya hasil 27 MB tidak membekukan halaman. Keluarannya sama byte demi byte dengan yang akan dihasilkan serializer bawaan bahasanya.
Konversi berjalan di perangkat Anda, di luar thread utama, dan menulis dokumen per blok alih-alih menyusunnya sekaligus — ekspor 10 MB selesai dalam sekitar setengah detik dan halaman tidak pernah berhenti merespons.
Pertanyaan yang sering diajukan
Bagaimana cara mengonversi CSV ke JSON?
Letakkan berkas .csv, .tsv, .txt, atau .psv, pilih bentuk keluaran, dan tentukan apakah baris pertama menjadi kunci objek. Pratinjau diperbarui setiap kali pengaturan berubah, jadi Anda melihat JSON yang persis sebelum memutuskan. Tekan Konversi dan alat ini menghasilkan dokumen lengkap yang bisa Anda salin ke papan klip atau unduh sebagai berkas .json — semuanya tanpa berkas meninggalkan perangkat Anda.
Apa yang diubah oleh 'baris pertama sebagai kunci'?
Saat aktif, baris header menyediakan nama properti dan setiap baris berikutnya menjadi objek JSON, menghasilkan array rekaman { "kolom": "nilai" } yang siap untuk API. Saat nonaktif, baris pertama diperlakukan sebagai data dan kolom diberi nama column_1, column_2, dan seterusnya, sehingga tidak ada yang hilang. Memilih bentuk array of array justru mempertahankan setiap sel berdasarkan posisi — berguna untuk data matriks.
Mengapa kolom saya terpisah dengan salah?
Pemisah yang dipilih kemungkinan tidak cocok dengan berkasnya. Deteksi otomatis menilai koma, titik koma, tab, dan garis tegak berdasarkan seberapa persegi hasil pembacaannya, bukan berdasarkan seberapa sering karakter itu muncul, sehingga koma di dalam alamat berkutip tidak memengaruhi hasil. Anda tetap dapat memaksa pemisah, dan memaksa karakter kutip menjadi ganda, tunggal, atau tanpa kutip, sampai kolomnya lurus.
Encoding berkas apa saja yang didukung?
Deteksi otomatis membaca tanda urutan byte terlebih dahulu, lalu jatuh ke UTF-8, kemudian Windows-1252. Anda juga dapat memaksa UTF-8, UTF-16LE, UTF-16BE, Windows-1252, atau ISO-8859-1. Tanda urutan byte selalu mengalahkan menu pilihan, karena tanda itu adalah berkas yang menyatakan encoding-nya sendiri sedangkan menu hanyalah tebakan — dan alat ini memberi tahu Anda ketika itu terjadi alih-alih melakukannya diam-diam.
Apakah angka menjadi angka JSON sungguhan?
Ya, dan alat ini menolak melakukannya jika itu akan menghancurkan informasi. Nomor komponen seperti 007 mempertahankan nol di depannya, nomor kartu dua puluh digit tetap berupa string alih-alih kehilangan digit terakhirnya karena pembulatan titik mengambang, nomor telepon +6281234567890 mempertahankan tanda plusnya, dan Infinity serta NaN tetap string karena keduanya bukan JSON yang sah. TRUE dan FALSE menjadi boolean dan NULL menjadi null. Tanggal tetap string, karena JSON tidak punya tipe tanggal dan konversi apa pun akan menjadi tebakan.
Bisakah ia membuat JSON bersarang dari header saya?
Bisa. Header yang ditulis alamat.kota dan alamat.kodepos dapat dilipat menjadi objek alamat bersarang, dan begitulah ekspor dari kebanyakan CRM keluar. Header berpemisah garis miring bekerja dengan cara yang sama. Jika sebuah berkas punya kolom alamat sekaligus kolom alamat.kota, keduanya tidak bisa menempati tempat yang sama dalam satu dokumen, jadi kolom bertitik mempertahankan nama datarnya semula dan alat ini menyebutkan yang mana — tidak ada kolom yang pernah dibuang atau diganti namanya demi membuat penyarangan berjalan.
Apakah CSV saya diunggah ke suatu tempat?
Tidak. Berkas dibaca, diurai, dan ditulis sepenuhnya di perangkat Anda, dan dokumen jadinya langsung diserahkan ke unduhan atau papan klip. Itu menjaga ekspor rahasia tetap privat, memungkinkan alat bekerja luring setelah dimuat, dan membuatnya bisa dipakai di ponsel dan tablet seperti di komputer.
Apakah gratis, dan sanggup untuk berkas besar?
Ya, gratis. Paket gratis mengonversi satu berkas sekaligus hingga 25 MB, kira-kira 250.000 baris ekspor biasa, dengan semua bentuk keluaran dan semua opsi tersedia. Konversi berjalan di luar thread utama, jadi halaman tetap responsif dan pratinjau terus diperbarui saat berkas besar ditulis. Pro menambah konversi massal hingga 50 berkas, satu unduhan ZIP, dan penggabungan satu batch menjadi satu dokumen.
dari 186 penilaian
Beri nilai alat ini
Ketuk bintang — hanya sebentar