Kas ir JSON un Excel (XLSX) pārveidotājs?
Šī lapa ļauj augšupielādēt JSON failu un iegūt no tā Excel XLSX failu. Atšķirībā no vienkāršiem CSV pārveidotājiem, šis rīks automātiski saplacina hierarhisko JSON struktūru līdzenā tabulā: objektu atslēgas kļūst par kolonnu virsrakstiem, objektu masīvi kļūst par rindām, un ligzdotās atslēgas tiek izvērstas ar punktu ceļiem (piemēram, address.city). Pēc pārveidošanas varat priekšskatīt rezultātu un lejupielādēt gatavo izklājlapu.
Galvenā atšķirība no citiem rīkiem ir tā, ka JSON ir tipizēts un ligzdojams – tajā var būt objekti, masīvi, skaitļi, Būla vērtības un null – turpretī līdzena izklājlapa nevar tieši attēlot šo hierarhiju. Tādēļ šis pārveidotājs piemēro saplacināšanas kārtulu (punktu ceļu atslēgas), kas nav nepieciešama, pārveidojot no CSV vai Excel, jo tie jau ir līdzeni. Turklāt gala formāts XLSX var nativamente glabāt datu tipus, piemēram, skaitļus un Būla vērtības, atšķirībā no CSV, kas visu pārvērš tekstā.
Kā darbojas JSON struktūras saplacināšana?
JSON formāts pieļauj trīs pamata struktūras: objektu (atslēgu–vērtību pāri), masīvu (sakārtots saraksts) un primitīvus tipus (virknes, skaitļi, loģiskās vērtības, null). Lai to pārvērstu tabulā, rīks veic šādas darbības:
-
Masīvs no objektiem – ja augšupielādētais fails satur masīvu, kura katrs elements ir objekts, tad katrs objekts kļūst par vienu tabulas rindu. Objekta atslēgas kļūst par kolonnu virsrakstiem. Piemēram:
[ {"name": "Anna", "age": 30}, {"name": "Jānis", "age": 25} ]Rezultāts: divas rindas, kolonnas
nameunage. -
Ligzdoti objekti – ja objekta vērtība pati ir objekts, tā lauki tiek izvērsti ar punktu ceļiem. Piemēram:
{"person": {"name": "Anna", "address": {"city": "Rīga", "zip": "LV-1001"}}}Tabulā iegūst kolonnas
person.name,person.address.city,person.address.zip. Šāds apzīmējums ļauj saglabāt sākotnējo hierarhiju, lai gan tabula ir līdzena. -
Masīvu masīvi – ja fails ir masīvs, kura elementi paši ir masīvi, tad katrs iekšējais masīvs kļūst par rindu, bet kolonnu skaitu nosaka garākā masīva garums. Piemēram:
[ [1, 2, null], ]Rodas divas rindas: pirmā ar kolonnām 1,2 (trešā kolonna tukša), otrā ar 3,4,5.
-
Primitīvu vērtību masīvi – ja masīvā ir tikai primitīvi elementi (piemēram, ``), rīks to neuzskata par “tabulas formas” JSON un parādīs kļūdu “This JSON is invalid or not table-shaped”. Ir nepieciešams masīvs no objektiem vai masīvs no masīviem.
Šī automātiskā saplacināšana ir būtiska, jo bez tās hierarhisku JSON nevar tieši ievietot rindu–kolonnu struktūrā. Tā ir arī viena no biežākajām kļūdām, ko pieļauj lietotāji: viņi sagaida, ka ligzdots JSON tiks attēlots ar papildu darblapām vai apvienotām šūnām, bet reāli viss tiek iztulkots kā viena līdzena tabula.
Datu tipu saglabāšana: JSON pret XLSX
XLSX formāts (saspiests XML darbgrāmatiņš) spēj uzglabāt dažādus datu tipus: skaitļus (ciparus ar decimāldaļām un bez tām), Būla vērtības (TRUE vai FALSE), virknes, kļūdu vērtības un tukšumu. Šis rīks precīzi pārnes šos tipus no JSON uz XLSX:
- Skaitļi – JSON skaitlis, piemēram,
42vai3.14, tiek ierakstīts Excel šūnā kā skaitlisks tips. Excel to atpazīst un ļauj veikt aprēķinus. - Būla vērtības –
trueunfalsekļūst parTRUEunFALSEExcel šūnās. CSV formātā tie tiktu pārveidoti par tekstu “true”/“false”, kas nav ērti turpmākai apstrādei. nullun tukšas vērtības – ja JSON lauks saturnull, rezultāta šūna paliek tukša (nav vērtības). Ja objektā trūkst atslēgas, ko citiem objektiem ir, tad šūnā arī ir tukšums.- Virknes – jebkura teksta vērtība tiek saglabāta kā virknes tips.
XLSX formāta priekšrocība ir tā, ka netiek zaudēta datu tipu informācija, atšķirībā no CSV, kur viss ir teksta formā. Tas ir īpaši svarīgi, ja vēlaties vēlāk veikt aprēķinus vai datu analīzi programmā Excel, jo skaitļi un Būla vērtības būs gatavi lietošanai bez papildu pārveidošanas.
Tomēr jāņem vērā: rīks nesaglabā formulas, šūnu formatējumu vai nosacījumus. No JSON ienāk tikai statiskie dati. Ja nepieciešamas formulas, tās jāpievieno iegūtajā Excel failā manuāli.
Pārveidotāja ierobežojumi un malējie gadījumi
Lai gan rīks ir vienkāršs un darbojas tikai pārlūkā (klienta pusē), tam ir vairāki praktiski ierobežojumi, ko lietotājiem jāzina:
- Viens fails vienā reizē. Nevar pārveidot vairākus failus uzreiz; katrs jāapstrādā atsevišķi.
- Atļautie formāti. Var augšupielādēt tikai CSV, JSON vai XLSX failus. Ja mēģina citu formātu, parādās kļūda “Choose a CSV, JSON or XLSX file.”.
- Faila lielums. Ja fails pārsniedz maksimālo atļauto izmēru (8 MB), tiek parādīts “This file is too large. Use a file under ‹max›.”.
- Tabulas forma. JSON jābūt “tabulas formas” – vai nu masīvam no objektiem, vai masīvam no masīviem. Pretējā gadījumā kļūda “This JSON is invalid or not table‑shaped.” Piemēram, vienkāršs objekts
{"a":1}bez masīva nav derīgs. - Tukšs fails. Ja fails nav tukšs, bet pēc pārveidošanas tabulā nav rindu (piem., tukšs masīvs ``), parādās “This file has no table rows.”.
- Rindu un kolonnu skaita limits. Rīks atbalsta līdz 10 000 rindām un 200 kolonnām. Ja tiek pārsniegts maksimāli atļautais rindu vai kolonnu skaits, rīks atsakās pārveidot.
- Atcelšana un laika limits. Ja lietotājs nospiež “Atcelt” vai rīks ilgāk par aptuveni 12 sekundēm nebeidz apstrādi, parādās “Conversion cancelled.” vai “This conversion is taking too long. Try a smaller file.”.
- Tikai viena darblapa. Izejas XLSX satur tikai vienu darblapu (Sheet1). No JSON nevar automātiski izveidot vairākas lapas.
- Nav formulu vai formatējuma. Ne formulas, ne šūnu krāsas, ne fonti netiek pārņemti. Šūnas tiek rakstītas kā vienkāršas vērtības, saglabājot to tipus (piemēram, skaitļi paliek skaitļi, nevis tiek pārvērsti par tekstu).
Šie ierobežojumi ir apzināti: rīks ir paredzēts ātrai un vienkāršai datu pārnešanai, nevis pilnvērtīgai Excel failu ģenerēšanai. Ja nepieciešams vairāk funkciju, jāizmanto specializētas programmatūras vai skriptēšanas valodas.
Kam šis rīks noder?
Rīks ir piemērots ikvienam, kam ir hierarhiski dati JSON formātā un nepieciešams tos analizēt vai kopīgot kā izklājlapu. Konkrēti lietošanas gadījumi:
- API atbildes apstrāde. Daudzas tīmekļa API atgriež datus JSON formātā. Piemēram, pasūtījumu saraksts ar ligzdotu informāciju par klientu un preci. Šis rīks ātri saplacina šādus datus, lai tos varētu importēt Excel.
- Datu analītiķi. Viņi bieži saņem JSON failus no kolēģiem un vēlas tos pārveidot tabulā, neuzrakstot Python skriptu. Rīks ir ātrs risinājums.
- Datu tipu saglabāšana. Ja svarīgi, lai skaitļi un Būla vērtības paliktu kā tādi (nevis teksts), XLSX ir labāks par CSV. Šis rīks to nodrošina.
- Komandas darbs. Ja uzņēmumā daļa komandas strādā ar JSON (piemēram, izstrādātāji), bet daļa ar Excel (piemēram, analītiķi vai vadītāji), šis rīks kalpo kā tilts.
- Datu privātums. Tā kā pārveidošana notiek tikai pārlūkā (JavaScript kods lokāli), neviens fails netiek augšupielādēts ārējā serverī. Tas ir būtiski, ja dati ir sensitīvi.
Tomēr jāapzinās, ka dziļi ligzdoti vai neregulāri objekti (kur dažādiem objektiem ir dažādas atslēgas) var radīt daudzas kolonnas ar tukšām šūnām. Šādos gadījumos rīks joprojām darbojas, bet rezultāts var būt grūti pārskatāms.
Biežāk uzdotie jautājumi (FAQ)
1. Vai var pārveidot vairākus JSON failus vienlaikus?
Nē, rīks atļauj apstrādāt tikai vienu failu vienā reizē. Ja nepieciešams apstrādāt vairākus failus, katrs jāpārveido atsevišķi.
2. Kāpēc es saņemu kļūdu “This JSON is invalid or not table‑shaped”?
Tas nozīmē, ka jūsu JSON struktūra nav derīga tabulas izveidei. Pārbaudiet, vai fails ir derīgs JSON un vai tas sākas ar masīvu [ un satur vai nu objektu masīvu, vai masīvu masīvu. Piemēram, šāds JSON ir nederīgs: {"name":"Anna","age":30} (objekts, nevis masīvs). Lai to labotu, ievietojiet objektu masīvā: [{"name":"Anna","age":30}].
3. Kas ir “dot‑path” atslēgas?
Tās ir kolonnu virsraksti, kas atspoguļo JSON ligzdošanas līmeņus. Piemēram, ja objekts ir {"a":{"b":1}}, tad kolonna tiks nosaukta a.b. Tas ļauj redzēt, kurš dati pieder kuram ligzdošanas līmenim, lai gan tabula ir līdzena.
4. Vai tiek saglabātas formulas, ja tās bija sākotnējā XLSX failā?
Nē, rīks apstrādā visas JSON vērtības kā datus, nevis kā formulas. Ja JSON satur virkni "=SUM(A1:A10)", tā parādīsies šūnā kā burtisks teksts, nevis kā aprēķināta summa.
5. Vai mani dati tiek nosūtīti uz jebkuru serveri?
Nē, viss process notiek jūsu pārlūkā. Nav nekādas failu augšupielādes uz ārēju serveri. Tas nodrošina datu privātumu.
6. Kāpēc nevar pārveidot dziļi ligzdotus objektus?
Var gan – tie tiek saplacināti ar dot‑path atslēgām. Tomēr ļoti dziļa ligzdošana (4+ līmeņi) rada ļoti garus kolonnu virsrakstus, kas var būt grūti lasāmi. Turklāt, ja objektos ir dinamiskas atslēgas atšķirīgiem elementiem, var rasties daudz kolonnu. Rīks tomēr to apstrādā, bet rezultāts var būt neērts.