Af hverju þessi síða er til
Þessi síða tekur JSON-skrá og breytir henni í Excel-skrá (XLSX). Ástæðan fyrir því að þetta er ekki eins einfalt og að lesa CSV-skrá er sú að JSON er gerólíkt uppbyggt. JSON er týpað og hreiðruð uppbygging — það getur innihaldið hluti (objects), fylki (arrays), tölur, boolsk gildi og null. Venjulegt töflureiknisblað getur ekki beint tekið við þessari stigveldisuppbyggingu. Þess vegna beitir þetta tól sérstakri flötnunarreglu: það notar punkta-lykla (dot-path keys) til að tákna hreiðraða lykla, eins og address.city. Þessi aðferð er ekki nauðsynleg þegar verið er að vinna með CSV eða Excel, því þau snið eru þegar flöt.
Markmiðið er að breyta hreiðruðum JSON-gögnum í flata töflu sem hægt er að vinna áfram í Excel. Tólið framkvæmir flötnunina sjálfvirkt: lyklar hluta verða dálkaheitakerfi, fylki hluta verða raðir og hreiðraðir lyklar eru stækkaðir með punktanöfnum. Notandinn sér forskoðun á niðurstöðunni og getur síðan hlaðið niður fullbúinni XLSX-skrá.
Hvernig flötnun á JSON virkar
Þegar JSON-skjal er hlaðið inn greinir tólið hvort það sé „töflulaga“ (table-shaped) — það er, fylki hluta eða fylki fylkja. Ef það er fylki hluta verður hver hlutur ein röð í úttakstöflunni. Dálkaheitakerfin eru dregin af lyklum hlutanna. Nákvæmlega hvernig hreiðraðir lyklar eru meðhöndlaðir skiptir mestu máli.
Tökum dæmi um JSON-gögn með hreiðruðum hlut:
[
{
"nafn": "Anna",
"heimilisfang": {
"borg": "Reykjavík",
"postnumer": 101
}
},
{
"nafn": "Jón",
"heimilisfang": {
"borg": "Akureyri",
"postnumer": 600
}
}
]
Eftir flötnun verður taflan svona:
| nafn | heimilisfang.borg | heimilisfang.postnumer |
|---|---|---|
| Anna | Reykjavík | 101 |
| Jón | Akureyri | 600 |
Punkturinn í heimilisfang.borg táknar dýpt hreiðursins. Þetta er algjörlega óþarft í CSV eða Excel, sem eru flöt snið, en í JSON er það eina leiðin til að varðveita uppbygginguna í flatri töflu. Ef hluti inniheldur fylki hluta, er það ekki stækkað í sérstakar raðir, heldur er allt fylkið strengjað sem JSON og sett í einn reit. Tólið meðhöndlar einungis fylki hluta eða fylki fylkja sem röðun.
Gagnatýpur í JSON og Excel (XLSX)
Einn stór munur á XLSX og CSV er hvernig gagnatýpur eru varðveittar. CSV lækkar allt í texta. XLSX, sem er zip-þjappað XML-vinnubók, getur geymt nákvæmar gagnatýpur: tölur, bólska gildi, texta og dagsetningar. Þetta tól skrifar aðeins kyrrstæð, sýnileg gögn úr JSON-skránni, en það varðveitir týpur.
Í JSON geta tölur verið heiltölur (42) eða brot (3.14), bólsk gildi (true, false), og null. Í XLSX-úttakinu verður:
- Tala úr JSON skrifuð sem tala í Excel-reit.
- Bólskt gildi skrifað sem
TRUEeðaFALSEmeð bólskri gerð. - Null skrifað sem tómur reitur (ekki textinn "null").
- Strengir skrifaðir sem texti.
Þetta er mikilvægt fyrir gagnavinnslu: ef þú flytur JSON með tölum í CSV tapast tölugerðin og þú þarft að breyta aftur í Excel eða annað tól. Með XLSX varðveitist gerðin, sem sparar vinnu við innlestur.
Villuskilaboð og hömlur
Tólið hefur nokkrar hömlur og skilar skýrum villuskilaboðum ef einhverjar þeirra eru brotnar. Þær eru:
- „Choose a CSV, JSON or XLSX file.“ — Skráin er ekki viðurkennt snið.
- „This file is too large. Use a file under ‹max›.“ — Skráin er stærri en hámarksstærðin (8 MB).
- „This JSON is invalid or not table‑shaped.“ — JSON-skráin gæti verið ógild (t.d. villa í rithætti) eða ekki fylki hluta eða fylkja.
- „This file has no table rows.“ — JSON er gilt en inniheldur enga hluti eða fylki.
- „This table has more than ‹max› rows.“ — Fjöldi raða fer yfir hámark (10.000 raðir).
- „This table has more than ‹max› columns.“ — Fjöldi dálka fer yfir hámark (200 dálkar).
- „Conversion cancelled.“ — Notandinn hætti við.
- „This conversion is taking too long. Try a smaller file.“ — Vinnslutími fer yfir tímamörk (um 12 sekúndur).
Allar þessar villur snúa að lögun og stærð inntaksgagnanna. Tólið reiknar engar formúlur og varðveitir ekkert snið úr inntaks Excel-skjalinu. Ef JSON-skráin inniheldur fylki hluta eða fylki fylkja er hún „töflulaga“; annars færðu villu.
Aðeins fyrsta verkið
Tólið framleiðir aðeins eitt verk (worksheet) í XLSX-skránni. Það er enginn stuðningur við mörg verkblöð. Ef JSON-skráin inniheldur margar færslur eða mismunandi uppbyggingu verður aðeins fyrsta lagið flatt. Þetta er mikilvæg takmörkun: ef JSON inniheldur fylki fylkja (array of arrays) með mismunandi dýpt, eða marga hluti sem ekki hafa sömu lykla, getur flötnunin orðið ófullkomin.
Tiltekið dæmi: ef JSON-skráin inniheldur tvo hluti, annan með lyklana nafn og heimilisfang, en hinn með lyklana titill og upphæð, verður sameinuð tafla með öllum fjórum dálkum. Fyrir raðir sem vantar gildi verða reitir tómir. Þetta er algeng aðferð en getur valdið ruglingi ef gögnin eru misjöfn.
Hver notar þetta
Verkfærið nýtist fólki sem:
- Fær gögn úr API-i eða stillingarskrá í JSON-sniði og þarf að vinna þau í Excel.
- Er gagnafræðingur sem vill flata hreiðruð JSON-verk án þess að skrifa kóða (t.d. í Python eða JavaScript).
- Þarf að varðveita tölur og bólsk gildi sem snið, ekki sem texta (sem CSV myndi gera).
- Vinnur í teymi þar sem sumir nota Excel og fá ekki auðveldlega unnið með JSON.
Allt úrvinnslan fer fram á vafranum; engin skrá er hlaðin upp á netþjón. Þetta tryggir gagnaöryggi, sérstaklega við viðkvæm gögn.
Algengar spurningar (FAQ)
1. Get ég breytt JSON-skjali með mörgum fylkjum í eina töflu?
Já, ef skjalið er fylki hluta eða fylki fylkja. Ef það eru mörg fylki á mismunandi stigum flötunin aðeins eitt lag; dýpri fylki gætu tapast eða orðið til margra raða, allt eftir uppbyggingu. Þú getur prófað forskoðun til að sjá niðurstöðuna áður en þú hleður niður.
2. Hvað verður um null-gildi í JSON?
Null-gildi verða tómur reitur í Excel. Þau eru ekki skrifuð sem textinn "null".
3. Get ég breytt JSON-skjali með hreiðruðum hlutum í margar raðir?
Nei, hreiðraður hluti verður að einni röð með punktalyklum. Ef hluti inniheldur fylki hluta (t.d. börn: [{nafn: "Ólafur"},...]) verður allt fylkið strengjað sem JSON og sett í einn reit.
4. Hvers vegna fæ ég „This JSON is invalid or not table‑shaped“?
JSON-skráin þín er annað hvort ekki gilt JSON (t.d. vantar kommur, tvísetti ekki lokað) eða hún er ekki fylki hluta eða fylki fylkja. Til dæmis, ef rótin er einfaldur strengur eða tala, eða ef hún er hlutur en ekki fylki, færðu þessa villu.
5. Er hægt að varðveita formúlur eða snið úr JSON?
Nei. Tólið skrifar aðeins kyrrstæð gögn. Engar formúlur, litir, leturgerðir eða önnur snið koma fram í úttakinu. Þetta er meðvituð hönnun: JSON inniheldur yfirleitt hrein gögn, ekki snið.
6. Hvað gerist ef JSON-skráin er of stór?
Tólið sýnir skilaboð um að skráin sé of stór og gefur upp hámarksstærð (8 MB). Þú þarft þá að stytta skrána (t.d. fjarlægja óþarfa atriði) eða skipta henni í smærri hluta. Tímatakmörk gilda einnig; ef breyting tekur of langan tíma færðu skilaboð um að nota minni skrá.