JSON til Excel: Hvordan fladgøring og datatyper fungerer i praksis
Denne side konverterer en JSON-fil til et Excel-regneark (XLSX). Værktøjet fladgør automatisk den hierarkiske JSON-struktur til en flad tabel: objekters nøgler bliver til kolonneoverskrifter, arrays af objekter bliver til rækker, og indlejrede nøgler udvides med sti-navne adskilt af punktummer. Du kan forhåndsvise resultatet og downloade det færdige regneark.
Hvordan fladgøringen foregår – fra indlejret JSON til tabelceller
JSON kan indeholde objekter, arrays, tal, booleske værdier og null. Et regneark er derimod fladt – hver celle har én værdi, og kolonner repræsenterer et enkelt felt. For at bygge bro mellem de to strukturer anvender værktøjet en fladgøringsregel med punktstier.
Forestil dig en JSON-fil med dette indhold:
[
{
"navn": "Anders",
"alder": 34,
"adresse": {
"by": "Aarhus",
"postnr": 8000
}
},
{
"navn": "Birgitte",
"alder": 28,
"adresse": {
"by": "Odense",
"postnr": 5000,
"land": "Danmark"
}
}
]
Værktøjet fladgør adresse-objektet. Kolonneoverskrifterne bliver: navn, alder, adresse.by, adresse.postnr, adresse.land. Række 1 får værdierne Anders, 34, Aarhus, 8000 og en tom celle for adresse.land. Række 2 får Birgitte, 28, Odense, 5000, Danmark. Punktstien gør det muligt at bevare den logiske sammenhæng uden at miste information – dog kun så længe dybden er overskuelig. Hvis et objekt indeholder et array af objekter, fladgøres hvert element som en separat række, medmindre arrayet er indlejret på et niveau, der ville kræve gentagelse af overordnede data. I praksis behandler værktøjet det yderste array som tabellens rækker.
Forskellen på JSON, CSV og XLSX – hvorfor typede data betyder noget
CSV gemmer al data som tekst. Et tal som 8000 bliver i en CSV-fil til strengen "8000", og en boolsk værdi som true bliver til "true". Når du åbner CSV’en i Excel, skal programmet gætte, om cellen skal være tal eller tekst – ofte med uventede resultater.
XLSX (det format, værktøjet producerer) er et zippet XML-workbook, der kan gemme datatyper som tal, booleske værdier, datoer og tomme celler. Værktøjet bevarer de oprindelige JSON-datatyper: tal bliver til tal i regnearket, true/false bliver til booleske værdier, og null bliver til en tom celle. Det er en afgørende fordel, hvis du senere skal bruge regnearket til beregninger eller diagrammer, hvor datatyperne skal være korrekte.
Dog gemmer værktøjet kun data, ikke formler eller celleformatering. Hvis den originale JSON indeholdt et objekt med en nøgle som formel: "=SUM(A1:A10)", vil den blive skrevet som en almindelig tekststreng, ikke som en Excel-formel. Værktøjet udfører ingen beregninger – det skriver den statiske værdi fra JSON’en.
Hvad gør denne side anderledes – fladgøringsregel, datatyper og klientbehandling
Flere værktøjer kan konvertere JSON til Excel, men denne side skiller sig ud på tre punkter, der alle fremgår af kildematerialet:
-
Fladgøringsregel med punktstier. Når JSON indeholder indlejrede objekter, bruger værktøjet konsekvent punkter til at sammenkæde nøgler. Det er en simpel, forudsigelig metode, som ikke kræver, at du kender den nøjagtige struktur på forhånd. Andre værktøjer kan vælge at udflade med tankestreger, skråstreger eller slet ikke at flade – men punktstier er standarden i mange datapipelines (f.eks. MongoDB-dotnotation).
-
Bevarelse af datatyper. Som nævnt bevares tal og booleske værdier i XLSX. Det er ikke muligt i CSV, og mange online-konverterere tvinger alt til tekst. For en dataanalytiker, der arbejder med API-svar, er det afgørende, at
"alder": 34forbliver et tal, så man kan beregne gennemsnit i Excel uden at skulle konvertere først. -
Klientbaseret behandling. Konverteringen foregår udelukkende i browseren. Ingen filer uploades til en server – al behandling sker lokalt på din maskine. Det giver datasikkerhed, hvis JSON’en indeholder fortrolige oplysninger. Det betyder også, at værktøjet har en maksimal filstørrelse (angivet ved fejlmeddelelsen “This file is too large. Use a file under ‹max›.”), men at grænsen afhænger af browserens hukommelse, ikke af en serverbegrænsning.
Input- og outputkrav samt fejlmeddelelser
Værktøjet forventer en JSON-fil, der er tabelformet – enten et array af objekter eller et array af arrays. En simpel værdi som "hej" eller et enkelt objekt uden et ydre array giver fejlen “This JSON is invalid or not table‑shaped.” Det skyldes, at værktøjet ikke kan afgøre, hvordan data skal fordeles på rækker.
Krav til input:
| Egenskab | Beskrivelse |
|---|---|
| Filtype | .json (enkelt fil ad gangen) |
| Struktur | Array af objekter eller array af arrays |
| Maks størrelse | Angivet i fejlmeddelelsen – typisk afhænger af browserhukommelse |
| Maks rækker | Angivet i fejlmeddelelsen – typisk et par hundrede tusinde |
| Maks kolonner | Angivet i fejlmeddelelsen – typisk et par tusinde |
Fejlmeddelelser, du kan støde på:
“Choose one file first.”– du har ikke valgt nogen fil.“Choose a CSV, JSON or XLSX file.”– du har valgt en anden filtype (værktøjet kan også håndtere CSV/XLSX som input, men på denne side er JSON det primære).“This file is too large. Use a file under ‹max›.”– filen overskrider den maksimale størrelse.“This JSON is invalid or not table‑shaped.”– JSON’en kan ikke parses eller er ikke et array af objekter/arrays.“This file has no table rows.”– arrayet er tomt.“This table has more than ‹max› rows.”– for mange rækker.“This table has more than ‹max› columns.”– for mange kolonner (typisk fra et objekt med mange nøgler).“Conversion cancelled.”– du har afbrudt processen.“This conversion is taking too long. Try a smaller file.”– behandlingen overskrider en tidsgrænse.
Hvis du ser nogen af disse, skal du justere din JSON-fil: sørg for, at den er gyldig, tabelformet og inden for størrelsesgrænserne.
Kanttilfælde og begrænsninger – arrays, null, kun ét ark
Array af arrays som rækker. Hvis JSON’en er et array af arrays, behandles hvert indre array som en række, og det yderste arrays længde bestemmer antallet af kolonner. Eksempel:
[["A", 1, true], ["B", 2, false]]
Dette giver to rækker med tre kolonner. Værktøjet opretter automatisk kolonneoverskrifter som Column 1, Column 2, Column 3. Det er nyttigt, hvis data allerede er tabelformet, men mangler overskrifter.
Null- og tomme værdier. null i JSON skrives som en tom celle i Excel. Hvis et objekt mangler en nøgle, der findes i et andet objekt, bliver cellen også tom. Det kan skabe huller i tabellen, men det er i overensstemmelse med, hvordan flade tabeller normalt håndterer manglende data. Hvis der er mange tomme celler, kan det være svært at læse – overvej at forberede JSON’en med standardværdier.
Kun ét ark. Værktøjet producerer kun ét regneark. Hvis din JSON indeholder flere logiske tabeller (f.eks. et objekt med nøglerne brugere og produkter, der hver er et array), vil værktøjet kun fladgøre det yderste array. Du kan ikke vælge, hvilket array der skal blive ark 1, ark 2 osv. For flerarksoutput skal du bruge et andet værktøj eller manuelt opdele data.
Ingen formler eller formatering. Som nævnt bevares ingen celleformatering, skrifttyper, farver eller formler. Output er rå data. Hvis du har brug for et præsentationsegnet regneark, skal du tilføje formatering i Excel efter konverteringen.
Hvem har brug for dette – målgrupper og anvendelser
Dataanalytikere modtager ofte JSON-svar fra API’er, som de skal analysere i Excel eller Power BI. I stedet for at skrive et Python-script til at fladgøre strukturen, kan de bruge dette værktøj til hurtigt at få en tabel. Den typede output gør, at tal- og boolske kolonner kan bruges direkte i beregninger.
Teammedlemmer uden programmeringserfaring kan modtage JSON-filer fra udviklere og har brug for at se data i et kendt format. Værktøjet kræver ingen kode – upload og download.
API-udviklere, der tester endpoints, kan konvertere svaret til Excel for at sammenligne data på tværs af kald, eller for at give forretningssiden et overblik over datastrukturen.
Studerende, der lærer om dataformater, kan bruge værktøjet til at se, hvordan en JSON-struktur ser ud som tabel, og dermed forstå begrebet fladgøring.
Ofte stillede spørgsmål
Hvad sker der, hvis JSON’en indeholder et array inde i et objekt?
Værktøjet fladgør kun det yderste array. Hvis et objekt har en nøgle med et array, bliver arrayet til en kolonne, men indholdet skrives som en JSON-streng (f.eks. ``). Det er ikke muligt at opdele et indlejret array på flere rækker – det kræver en egentlig normalisering, som værktøjet ikke udfører.
Kan jeg konvertere en JSON-fil med 500.000 rækker?
Det afhænger af din browsers hukommelse og den maksimale rækkegrænse, der vises i fejlmeddelelsen. Prøv med en mindre fil først. Værktøjet viser antallet af rækker og kolonner i forhåndsvisningen.
Hvorfor bliver en boolsk værdi til 1 eller 0 i Excel?
Det gør den ikke i værktøjets output. XLSX-formatet gemmer boolske værdier som true/false. Excel viser dem som SAND/FALSK eller TRUE/FALSE afhængigt af sprogindstillinger. Hvis du ser tal, er det sandsynligvis, fordi du har åbnet filen i et program, der konverterer boolske værdier.
Kan jeg få flere ark i outputtet?
Nej, værktøjet producerer kun ét ark. Hvis du har brug for flere ark, skal du eksportere hver tabel separat og samle dem manuelt i Excel.
Hvad betyder “not table‑shaped”?
JSON’en skal være et array i topniveau. Objekter som {"navn":"Anders"} (uden array omkring) er ikke tabelformet. Ligeledes giver en enkelt streng eller et tal en fejl. Omslut dit objekt i et array: [{"navn":"Anders"}].
Bevarer værktøjet datoer?
Nej, JSON har ikke en indbygget datotype. Hvis din JSON indeholder en dato som en streng (f.eks. "2024-01-15"), bliver den til en tekstcelle i Excel. Du kan derefter konvertere den til en egentlig dato i Excel med funktionen DATOVÆRDI.