Ubah JSON ke CSV
Ubah respons API, hasil ekspor, dan JSON Lines menjadi CSV yang terbuka rapi di Excel — record ditemukan untuk Anda, kolom bersarang diratakan menjadi kolom yang mudah dibaca, dan ID besar dipertahankan digit demi digit.
- Tidak pernah disimpan
- Tanpa antre, tanpa menunggu
- Tanpa daftar, tanpa watermark
Cara kerjanya
Tambahkan JSON
Letakkan file .json atau .jsonl, atau tempel JSON langsung ke kotak.
Pilih record-nya
Daftar record ditemukan otomatis, bahkan jauh di dalam data.items. Pilih cara penulisan array dan periksa pratinjaunya.
Unduh
CSV dengan delimiter dan encoding yang Anda perlukan, siap untuk Excel, Google Sheets, atau database.
Meratakan pohon menjadi grid
JSON adalah pohon dan CSV adalah persegi panjang, dan seluruh konversi ini adalah soal bagaimana yang satu menjadi yang lain. Kasus yang rapi adalah array objek yang semuanya memiliki kunci yang sama — setiap objek menjadi baris, setiap kunci menjadi kolom, dan tidak ada yang hilang. Seperti itulah bentuk kebanyakan respons API dan hasil ekspor, itulah sebabnya ini biasanya langsung berhasil. Semua hal yang merepotkan berasal dari dokumen yang tidak berbentuk seperti itu.
Objek bersarang diratakan dengan menggabungkan kuncinya, sehingga objek alamat di dalam data pelanggan menjadi kolom seperti address.city dan address.postcode — konvensi yang ditangani semua spreadsheet tetapi tidak didefinisikan oleh standar mana pun. Kunci yang muncul di sebagian objek saja menjadi kolom yang kosong di baris-baris yang tidak memilikinya, dan itu jawaban yang benar: alternatifnya adalah membuang data yang hanya dimiliki sebagian record.
Array bersarang adalah titik di mana grid benar-benar tidak bisa mengikuti. Satu record berisi tiga baris pesanan adalah satu baris yang memuat daftar, bukan tiga baris — mengubahnya menjadi tiga akan menggandakan semua field lain dan diam-diam mengubah makna datanya. Jadi satu array objek diuraikan menjadi baris dan array lainnya ditulis ke dalam selnya sebagai teks. Jika yang Anda butuhkan adalah baris pesanannya, bukan pesanannya, arahkan konversi ke array itu; pohon dengan dua daftar berdampingan tidak punya satu persegi panjang yang benar, dan memilih salah satunya adalah keputusan yang hanya bisa Anda buat.
Dua detail sering menjebak di tahap akhir. Nilai yang berisi koma, tanda kutip, atau jeda baris diberi tanda kutip agar tetap utuh — itu CSV yang benar, meski terlihat aneh jika Anda memeriksa file mentahnya. Dan ID numerik yang panjang menjadi bahaya begitu CSV sampai di spreadsheet: Excel akan membacanya sebagai angka, membulatkannya di atas lima belas digit, dan membuang nol di depannya — masalah yang ditimbulkan oleh spreadsheet, bukan oleh konversinya.
Jika Anda butuh hal lain
jq adalah alat yang tepat ketika bentuknya perlu diputuskan, bukan ditebak: jq -r '.orders[] | [.id, .customer.name, .total] | @csv' mengambil tepat field yang Anda mau dari tepat tingkat yang Anda mau, kontrol yang tidak bisa ditawarkan perata otomatis. jq juga bekerja secara streaming, sehingga ukuran file tidak lagi menjadi pertimbangan.
Untuk data bersarang secara umum, Miller — mlr --ijson --ocsv flatten — dan pandas.json_normalize di Python memberi Anda kontrol eksplisit atas seberapa dalam perataan dilakukan dan apa yang dilakukan terhadap daftar. Dan jika JSON-nya memang hierarkis, bukan tabular, mengubahnya ke CSV mungkin sama sekali bukan ide yang tepat — database atau file JSON per baris mempertahankan struktur yang akan dibuang oleh grid.
Pertanyaan yang sering diajukan
Bagaimana JSON bersarang menjadi kolom?
Setiap field bersarang menjadi satu kolom yang dinamai sesuai path-nya: {"address": {"city": "Oslo"}} menghasilkan kolom address.city. Kolom muncul sesuai urutan kemunculan pertamanya di data Anda, bukan menurut abjad, dan record yang tidak memiliki suatu field cukup membiarkan sel itu kosong.
Apa yang terjadi pada array?
Anda yang memilih: gabungkan nilainya dalam satu sel ("red; green"), sebar ke kolom bernomor (tags.0, tags.1), biarkan sebagai teks JSON, atau — untuk array objek seperti baris pesanan — tulis satu baris per item dengan field induk diulang.
Apakah angka besar dipertahankan dengan tepat?
Ya. ID di luar kemampuan JavaScript — ID Twitter, Discord, dan database 64-bit — disalin digit demi digit, sementara kebanyakan konverter diam-diam membulatkan 1234567890123456789 menjadi 1234567890123456800.
Apakah JSON Lines (NDJSON) didukung?
Ya. File dengan satu objek JSON per baris dikenali otomatis, dan setiap baris menjadi satu baris CSV.
Bagaimana jika JSON saya ada error?
Anda mendapatkan baris dan kolom yang tepat dengan teks bermasalah yang disorot, beserta penjelasan sederhana — misalnya koma di akhir, atau tanda kutip tunggal yang tersalin dari kode JavaScript.
Apakah data saya disimpan di suatu tempat?
Tidak. JSON dibaca dan CSV ditulis di sini; tidak ada yang dikirim ke mana pun dan tidak ada yang disimpan.
Perlu diketahui: Hanya satu array objek yang bisa diuraikan menjadi baris dalam satu waktu; array lain ditulis ke dalam selnya. File yang sangat besar dibatasi oleh memori browser Anda.
Pasang alat ini di situs Anda
Gratis untuk blog, halaman kelas, atau artikel bantuan apa pun. Tempel satu potong kode dan pengunjung Anda bisa langsung memakainya di halaman Anda.
Alat Spreadsheet lainnya
CSV ke JSON
CSV ke JSON bertipe dan bersarang
CSV ke Excel
CSV ke XLSX dengan angka dan tanggal yang sesungguhnya
XML ke Excel
Record XML menjadi sheet Excel yang terformat
Excel ke XML
Baris menjadi XML yang bersih dan valid
Excel ke CSV
Sheet apa pun ke CSV, dengan encoding yang Anda perlukan
ODS ke XLSX
Spreadsheet LibreOffice sebagai workbook Excel