CSV ⇄ JSON

Tempel salah satu format — format lainnya muncul saat Anda mengetik, dua arah.

Cara menggunakan

  1. Tempel CSV (atau TSV / teks berpemisah titik koma) atau larik JSON ke kotak — hasilnya digambar saat Anda mengetik, tidak ada tombol yang perlu ditekan. Arahnya dideteksi dari karakter pertama dan ditampilkan di atas hasil, jadi Anda dapat memeriksanya.
  2. Jika arahnya salah ditebak, pilih CSV → JSON atau JSON → CSV. Jika semuanya masuk ke satu kolom, ubah pemisah dari “Otomatis” ke karakter Anda. Matikan “Baris pertama adalah header” bila berkas dimulai dengan data — Anda lalu mendapatkan larik berisi larik, bukan objek.
  3. Salin atau unduh hasilnya. Keduanya memakai teks yang persis terlihat di layar; berkasnya bernama data.json atau data.csv. Muat contoh mengisi contoh sesuai arah yang aktif.

Contoh

Masukan (CSV)

order_id,customer,note,zip,amount,shipped
1001,"Sari, Ayu",minta pengembalian dana,00501,89.90,true
1002,Budi Santoso,,10001,42.00,false

Hasil (JSON)

[
  {
    "order_id": 1001,
    "customer": "Sari, Ayu",
    "note": "minta pengembalian dana",
    "zip": "00501",
    "amount": 89.9,
    "shipped": true
  },
  {
    "order_id": 1002,
    "customer": "Budi Santoso",
    "note": "",
    "zip": 10001,
    "amount": 42,
    "shipped": false
  }
]

Ada empat hal untuk diperiksa pada hasil itu: koma di dalam “Sari, Ayu” tetap di dalam nilainya alih-alih memecah baris; kode pos 00501 mempertahankan nol di depan karena jika tidak akan menjadi 501; 10001 memang menjadi angka, sehingga kolom kode pos berakhir dengan tipe campuran — matikan “Deteksi angka & boolean” agar setiap nilai tetap string; dan 89.90 keluar sebagai 89.9, karena angka JSON tidak dapat menyimpan nol di ujung.

Aturan, batasan, dan masalah yang diketahui

  • Tidak ada unggahan berkas, seret dan lepas, atau pengambilan URL: tempel teksnya. Zona lepas akan memakan tinggi yang dibutuhkan hasil, dan membaca berkas dengan benar berarti menangani pengodean non-UTF-8 — penampil CSV sudah melakukannya (GB18030, Big5, Windows-1256), jadi buka berkasnya di sana dan salin teksnya.
  • Masukan dibatasi 1.000.000 karakter; di atas 200.000 hasilnya menunggu sampai Anda berhenti mengetik dan menyatakannya. Di atas batas keras Anda mendapat galat eksplisit — masukan tidak pernah dipotong diam-diam.
  • Deteksi tipe dilakukan per sel dan konservatif: hanya true / false / null (huruf kecil saja) dan angka JSON ketat yang dikonversi. Bilangan bulat dengan nol di depan (00501) dan angka 16 digit atau lebih (ID panjang) selalu tetap string, dan sel kosong tetap "" alih-alih menjadi null.
  • Angka JSON tidak dapat menyimpan nol di ujung, jadi 89.90 menjadi 89.9 dan 42.00 menjadi 42. Matikan “Deteksi angka & boolean” agar setiap nilai tetap persis seperti yang ditulis.
  • Jumlah kolom adalah baris terlebar, jadi tidak ada bidang yang pernah dibuang: baris pendek diisi string kosong dan bidang tambahan mendapat nama otomatis. Baris yang tidak cocok dengan baris pertama dicantumkan berdasarkan nomornya.
  • Nama kolom duplikat diganti dengan _2, _3 … alih-alih saling menimpa — menimpa akan membuang satu kolom utuh diam-diam. Sel header yang hilang atau kosong menjadi column_N. Nama itu dapat dibaca mesin dan sama di setiap bahasa antarmuka.
  • JSON → CSV menerima larik objek (kasus utama), larik berisi larik (kolom posisional), satu objek, dan larik nilai biasa (satu kolom “value”). Selain itu — nilai di tingkat teratas, atau larik yang mencampur objek dengan nilai lain — ditolak dengan baris dan kolomnya, tidak pernah ditebak.
  • Objek bertingkat diratakan menjadi kunci bertitik (address.city) secara bawaan; larik tidak pernah diratakan, melainkan ditulis sebagai JSON padat di dalam sel. Matikan perataan agar objek bertingkat juga tetap JSON. null menjadi sel kosong.
  • JSON diurai secara ketat: tanpa komentar, tanpa koma di ujung, tanpa kutip tunggal, tanpa karakter kontrol yang tidak di-escape, penyarangan hingga 64 tingkat. Satu objek per baris (JSON Lines) tidak diterima — bungkus objeknya dalam larik dulu.
  • CSV adalah sisi yang lebih toleran: tanda kutip yang tidak ditutup dilipat sampai akhir teks dan barisnya disebutkan, baris kosong dilewati dan dihitung, dan baris dengan jumlah bidang yang salah dicantumkan. Hanya sisi JSON yang menghasilkan galat keras.
  • CSV keluaran ditulis dengan akhir baris CRLF dan tanpa byte-order mark, dan identik dengan yang Anda salin. Jika Excel menampilkan mojibake saat Anda mengklik dua kali CSV non-Latin, impor melalui Data → From Text/CSV dan pilih UTF-8.
  • Di luar cakupan: .xlsx, arsip, banyak berkas, JSON Lines, ekspor YAML/XML/SQL/Excel, pengurutan, penyaringan, pemilihan kolom, dan penghapusan duplikat — penampil CSV dan konverter konfigurasi mencakup hal itu. Tidak ada yang diunggah, disimpan, atau dimasukkan ke URL.

Yang biasanya dibutuhkan berikutnya setelah data berada di format lain.