Apa sing Ditindakake Kaca Iki
Kaca iki ngijinaké panjenengan ngunggah file JSON kanggo diowahi dadi file Excel (XLSX). Prosesé gampang: pilih siji file JSON, banjur alat iki otomatis mbacok struktur hierarkis JSON dadi tabel datar. Saben objek ing JSON bakal dadi baris, saben kunci (key) ing objek dadi kolom, lan nèk ana objek jero (nested), kunciné bakal digabung nganggo tandha titik (dot-path). Sawisé rampung, panjenengan bisa ndeleng pratinjau (preview) asil lan ngunduh file XLSX.
Alat iki mung nerima siji file JSON. File kudu “table‑shaped”, tegesé kudu wujud array saka objek utawa array saka array. Upamané file sing isiné data pelanggan: saben pelanggan minangka objek, saben objek ngandhut kaya jeneng, umur, alamat, lsp. Alamat dhéwé bisa objek (kaya kota, jalan). Nalika diowahi, kunci alamat bakal dadi alamat.kota, alamat.jalan. Iki sing diarani flattening.
Outputé mung siji worksheet ing file XLSX, dijenengi Sheet1. Ora ana formula, ora ana styling, mung data wae. Nanging data kasebut ngreksa tipe angka lan boolean – béda karo CSV sing ngowahi kabèh dadi teks. Sawisé dikonversi, panjenengan bakal weruh cacah baris lan kolom ing pratinjau, uga ukuran file output.
Apa Sing Bedakake Kaca Iki saka Liyane
JSON iku tipe data sing bisa bersarang lan terstruktur. Siji file JSON bisa ngandhut objek ing njero objek, array ing njero array, angka, boolean, null, lan liya-liyané. Sebaliké, spreadsheet (Excel) mung wujud tabel datar: baris lan kolom. Ora ana cara langsung nampilaké hirarki kaya JSON tanpa nindakaké flattening. Dadi, alat iki kudu nerapaké aturan tartamtu kanggo mecah struktur JSON.
Apané, format target XLSX (Office Open XML) iku zipped XML workbook sing bisa nyimpen tipe data asli – angka, boolean, tanggal – béda karo CSV sing mung teks. Nanging alat iki ora niru formula Excel utawa formatting apa waé saka file input (amarga inputé JSON, dadi ora ana formula). Sing penting, konversi lumaku ing browser – ora ana file sing dikirim menyang server. Iki njamin privasi data.
Cara flattening sing dipigunakaké yaiku nggunakaké dot-path names. Contoné, objek ing ngisor iki:
{
"nama": "Budi",
"umur": 30,
"alamat": {
"kota": "Surabaya",
"jalan": "Jl. Merdeka"
}
}
bakal dadi siji baris tabel kanthi kolom: nama, umur, alamat.kota, alamat.jalan. Iki béda karo konversi saka CSV utawa Excel menyang format liya, amarga inputé wis datar. Mula alat iki mbutuhaké cara khusus.
Aturan liyané: array saka array (kaya ``) uga dianggeg minangka tabel – saben array dadi baris. Nanging nèk array saka objek sing ora padha (sembarang kunci), alat bakal nganggo kunci saka kabèh objek minangka kolom. Nèk ana objek sing ora duwé kunci tartamtu, nilainé diisi kosong (blank).
Cara Kerja Konversi: Flattening JSON dadi Tabel
Alat iki nindakaké flattening kanthi urutan:
- Maca file JSON sing diunggah.
- Verifikasi nèk file wujud array (tabel-shape). Yèn dudu array, muncul pesen “This JSON is invalid or not table‑shaped.”
- Saben unsur array diproses:
- Yèn objek: saben pasangan kunci-nilai dijupuk. Nèk nilainé objek manéh, kunciné digabung nganggo titik (contone:
alamat.kota). Nèk nilainé array, array mau tidak diekspansi dadi baris anyar; cukup diowahi dadi teks (string) supaya tabel tetep siji baris. Iki watesan penting: alat ora bisa nggawé baris anyar saka array jero amarga mung siji worksheet. - Yèn array: (array saka array) saben array ngandhut unsur primitif utawa objek? Nèk primitif, langsung dadi kolom. Nèk objek, dikonversi kaya aturan ing ndhuwur, nanging kolom bakal digabung saka kabèh objek.
- Yèn objek: saben pasangan kunci-nilai dijupuk. Nèk nilainé objek manéh, kunciné digabung nganggo titik (contone:
- Kabeh kunci sing muncul ing objek apa waé bakal dadi kolom. Nèk ana objek siji duwé kunci
a, liyané duwéb, kolom bakal daftar loro. - Nèk ana nilai null, bakal dianggep kosong ing Excel. Boolean diowahi dadi TRUE/FALSE, angka tetep angka.
- Sawisé tabel rampung, alat nggawé file XLSX saka data kasebut.
Conto flattening kanggo array saka objek:
JSON:
[
{"id":1, "nama":"Sari", "hobi":["membaca","menulis"]},
{"id":2, "nama":"Joko", "hobi":["olahraga"]}
]
Tabel asil:
| id | nama | hobi |
|---|---|---|
| 1 | Sari | ["membaca","menulis"] |
| 2 | Joko | ["olahraga"] |
Kolom hobi isiné teks representasi array, dudu baris anyar. Iki merga alat mung ngekspor siji worksheet lan ora bisa ngolah sarang tanpa flattening luwih lanjut.
Data Types: saka JSON menyang XLSX
Salah siji kaluwihan XLSX tinimbang CSV yaiku kemampuan nyimpen tipe data. Nalika ngowahi JSON:
- Angka (number) – integer utawa floating point – tetep dadi angka ing Excel. Panjenengan bisa nggunakaké formula hitungan.
- Boolean (true/false) – dadi TRUE utawa FALSE ing sel Excel.
- Null – dadi sel kosong. Ora ana nilai khusus.
- String – dadi teks.
- Objek lan Array (kalebu sarang) – diowahi dadi teks (string) kanthi format JSON. Mula nèk ana array ing jero objek, wujudé kaya
["a","b"]ing sel.
Istimewané, alat iki ora nggarap formula. Sanajan file XLSX bisa ngandhut formula, alat iki mung nulis data statis. Dadi panjenengan ora bakal oleh rumus SUM utawa liya-liyané. Yèn pengin nambah formula, kudu mbukak file ing Excel.
Batesan lan Pesen Kesalahan
Alat iki nduwé watesan kanggo njaga kinerja lan nyegah masalah:
- Ukuran file: Watesan maksimal 8 MB. Nèk file kegedhen, muncul “This file is too large. Use a file under ‹max›.”
- Cacah baris: Watesan maksimal 10.000 baris. Nèk ngluwihi, “This table has more than ‹max› rows.”
- Cacah kolom: Watesan maksimal 200 kolom. Nèk ngluwihi, “This table has more than ‹max› columns.”
- Validasi file: Kudu file JSON. Yèn ora, “Choose a CSV, JSON or XLSX file.”
- Yèn JSON ora tabel-shape: “This JSON is invalid or not table‑shaped.”
- Yèn file kosong (ora ana baris): “This file has no table rows.”
- Yèn konversi dibatalaké: “Conversion cancelled.”
- Yèn wektu kegedhen: Konversi sing ngluwihi 12 detik bakal diendheg. Pesen sing muncul yaiku “This conversion is taking too long. Try a smaller file.”
Kabèh pesen iki mbiyantu nglacak kesalahan. Salah sijiné sing kerep kelakon yaiku file JSON dudu array saka objek. Contoné, file sing isiné siji objek {"nama":"Budi"} dudu tabel. Kudu diwungkus array: [{"nama":"Budi"}].
Sapa Sing Butuh Iki?
Alat iki migunani kanggo:
- Analis data sing nampa data saka API (biasané JSON) lan perlu dianalisis ing Excel. Tanpa alat iki, kudu nulis kode Python utawa JavaScript dhéwé kanggo flattening.
- Tim sing nggunakaké Excel bebarengan karo pengembang web. Pengembang bisa ngirim data JSON, banjur alat iki ngowahi supaya bisa diwaca kolega.
- Sapa waé sing péngin ngreksa tipe data (angka, boolean) nalika ngonversi saka JSON. CSV bakal ngowahi kabèh dadi teks, dadi rumit nèk arep ngitung.
- Sing butuh nangani data pribadi – amarga konversi lumaku ing browser, ora ana data sing dikirim menyang server.
Kelemahané: ora bisa ngatasi objek jero banget utawa array ing jero objek. Yèn butuh flattening luwih rumit, kerepé kudu nulis skrip khusus. Nanging kanggo kasus umum, alat iki cukup.
FAQ
1. Apa bisa ngunggah file JSON sing ukurané 10 MB? Ora. Watesan ukuran file yaiku 8 MB. Nèk ngluwihi, muncul pesen “This file is too large. Use a file under ‹max›.”
2. Nèk JSON-ku ngandhut array ing jero objek, apa array kuwi bakal dadi baris anyar?
Ora. Array ing jero objek bakal diowahi dadi teks (string). Contoné "hobi":["membaca","menulis"] dadi sel isiné ["membaca","menulis"]. Yèn butuh baris anyar, kudu flatten manual dhisik.
3. Apa file XLSX sing diunduh ngandhut formula? Ora. Alat iki mung nulis data statis. Ora ana formula, ora ana formatting. Yèn pengin formula, bukak file ing Excel banjur tambahi.
4. Ngapa pesen “This JSON is invalid or not table‑shaped” kerep muncul?
Biasané amarga file JSON dudu array saka objek utawa array saka array. Contone, file sing isiné siji objek {"a":1} dianggep ora tabel. Kudu dibungkus array: [{"a":1}]. Uga, file kudu valid JSON – priksa nèk ora ana koma keluwihan.
5. Apa aku bisa ngunduh file sawisé pratinjau? Ya. Sawisé pratinjau ditampilaké, ana tombol “Download” kanggo ngunduh file XLSX.
6. Apa dataku aman? Aman. Kabeh proses lumaku ing browser (client-side). Ora ana file sing dikirim menyang server. Mula privasi data tetep terjaga.