JSON ke CSV

Berjalan di perangkat Anda · File Anda tidak pernah meninggalkan perangkat.

Taruh file .json atau tempel JSON langsung dari respons API dan dapatkan CSV yang bisa dibuka di Excel, Google Sheets, atau layar impor mana pun. Daftar di tingkat atas memberi satu baris per item; kalau tidak, dipakai daftar rekaman terpanjang di dalam dokumen, jadi {"results": [...], "count": 2} memberi satu baris per item di results; objek yang tidak berisi daftar menjadi satu baris.

Aturannya tetap supaya hasilnya bisa ditebak: objek bersarang jadi kolom bertitik (alamat.kota), daftar nilai biasa disambung dengan titik koma dalam satu sel, dan daftar objek di dalam satu rekaman mendapat kolom bernomor (items.0.nama). Baris header adalah gabungan semua kunci yang ditemukan, sesuai urutan kemunculan pertama, jadi rekaman yang kekurangan kolom cukup meninggalkan sel kosong.

CSV ditulis mengikuti RFC 4180 (kolom yang berisi koma, tanda kutip, atau baris baru diberi tanda kutip dengan benar), dalam UTF-8 dengan BOM opsional supaya Excel menampilkan setiap aksara, huruf beraksen, dan simbol dengan benar. Sel yang diawali =, +, - atau @ diberi apostrof di depannya, supaya spreadsheet menampilkannya sebagai teks, bukan menjalankannya sebagai rumus. Anda melihat 200 baris pertama sebelum mengunduh, dan tidak ada yang meninggalkan perangkat Anda.

Cara JSON ke CSV

  1. Taruh file JSON, atau tempel JSON ke kotak.
  2. Pilih pemisah kolom keluaran (koma secara bawaan) dan apakah perlu BOM untuk Excel.
  3. Klik «Konversi ke CSV» dan periksa pratinjau baris pertamanya.
  4. Unduh file .csv.

Format yang didukung dan batasan

Masukan
JSON (.json), file atau teks yang ditempel, UTF-8
Keluaran
CSV, RFC 4180, UTF-8, akhir baris CRLF, BOM opsional
Bersarang
Objek → kolom bertitik; daftar nilai → disambung dengan ;
Pemisah
Koma, titik koma, tab, atau garis tegak
Berjalan di
Di browser – tanpa unggah

Tidak cocok untuk: Satu objek yang bersarang dalam tanpa daftar di dalamnya: tetap dikonversi, tetapi jadi satu baris yang sangat lebar, bukan tabel.

Daftar mana yang menjadi baris

Daftar di tingkat atas langsung menjadi baris. Kalau tidak ada, alat ini menelusuri dokumen sampai delapan tingkat ke dalam untuk mencari daftar objek yang terpanjang. Jadi {"response": {"data": {"items": [...]}}} maupun {"results": [...], "count": 2, "next": null} sama-sama memberi satu baris per item, dan baris di bawah hasil menyebutkan daftar yang dipakai, misalnya results. Nilai di samping daftar itu, seperti count dan next, bukan bagian dari rekaman mana pun dan dilewati.

Dari dua daftar yang sama panjang, yang lebih dekat ke atas yang menang. Untuk daftar yang lebih pendek, salin daftarnya dari [ sampai ] dan tempel bagian itu saja. Dokumen yang tidak berisi daftar objek menjadi satu baris, dan pembungkus yang hanya punya satu kunci dilewati, jadi {"order": {"id": 7, "total": 12}} memberi kolom id dan total.

Bagaimana nilai ditulis ke sel

Teks disalin persis, termasuk tanggal, yang tetap dalam bentuk apa pun yang dimiliki JSON, misalnya 2024-01-05T10:00:00Z. true dan false ditulis sebagai kata. null, daftar kosong, dan objek kosong semuanya menjadi sel kosong, jadi di CSV ketiganya tampak sama dengan field yang tidak ada.

Angka ditulis persis seperti di JSON: 1.0 tetap 1.0, 1e21 tetap 1e21, dan ID seperti 12345678901234567890 mempertahankan semua digitnya walaupun tanpa tanda kutip. Pembaca JSON biasa akan mengubah ID itu menjadi 12345678901234567000.

Daftar di dalam daftar, dan kunci yang sudah berisi titik

Daftar berisi daftar dibuka satu tingkat: "m": [[1, 2], [3]] memberi kolom m.0 berisi 1;2 dan kolom m.1 berisi 3. Daftar yang mencampur objek dan nilai biasa memberi nomor pada setiap isinya, jadi "x": [{"z": 1}, 2] memberi x.0.z dan x.1.

Nama kolom dibuat dengan menyambung kunci memakai titik, jadi kunci yang sudah berisi titik bisa bertabrakan dengan kunci bersarang: {"a.b": 1, "a": {"b": 2}} akan menghasilkan a.b dua kali. Yang kedua diberi akhiran, jadi kolomnya a.b dan a.b_2, dan kedua nilainya tetap ada.

Memilih pemisah, dan sel yang diawali =

Koma adalah pilihan yang umum. Titik koma cocok untuk spreadsheet dengan pengaturan bahasa yang menulis desimal dengan koma, seperti Indonesia, karena di sana file berpemisah koma sering terbuka dalam satu kolom saja. Tab dan garis tegak untuk sistem yang memintanya. Apa pun pemisahnya, nama filenya tetap .csv.

Sel yang diawali =, +, - atau @ dianggap rumus oleh spreadsheet, yang akan menjalankannya saat file dibuka. Sel seperti itu diberi apostrof di depannya, tanda yang dipakai spreadsheet sendiri untuk „ini teks“, jadi =1+1 ditulis sebagai '=1+1. Angka biasa seperti -5 atau +3.5 dibiarkan apa adanya.

Pertanyaan umum

Apakah file saya diunggah ke server?
Tidak. Konversi berjalan sepenuhnya di browser, memakai tenaga perangkat Anda sendiri. File tidak pernah meninggalkan HP atau laptop Anda. Setelah sebuah alat dipakai sekali, alat itu tetap bekerja tanpa internet: alat video, pengenal teks, dan penghapus latar mengunduh mesinnya dari situs ini pada pemakaian pertama, lalu browser menyimpannya.
Objek dan array bersarang jadi apa?
Objek bersarang diratakan jadi kolom bertitik: {"alamat":{"kota":"Bandung"}} menjadi kolom bernama alamat.kota. Daftar nilai biasa ("tag": ["a","b"]) ditulis a;b dalam satu sel. Daftar objek di dalam rekaman mendapat kolom bernomor seperti items.0.nama, items.1.nama.
JSON saya objek, bukan daftar; hasilnya apa?
Daftar rekaman terpanjang di mana pun di dalamnya menjadi baris: {"results": [...], "count": 2, "next": null} memberi satu baris per item di results, dan baris hasil menyebutkan daftar mana yang dipakai. Nilai di samping daftar itu bukan bagian dari rekaman mana pun dan dilewati. Objek yang tidak berisi daftar ditulis sebagai satu baris dengan satu kolom per kunci.
Kenapa Excel menampilkan karakter aneh, dan bagaimana membetulkannya?
Excel menebak encoding kecuali file diawali BOM. Sakelar „Tambahkan BOM untuk Excel“ menyala secara bawaan dan menambahkan penanda tiga byte itu; matikan untuk alat yang mengharuskan UTF-8 polos.

Alat terkait

Lainnya di Lembar kerja dan data

Halaman ini dalam bahasa lain: English · العربية · Deutsch · Français · Español · Русский · Português · 中文 · हिन्दी · Türkçe · עברית · فارسی · اردو · বাংলা