Hva JSON-til-CSV-verktøyet gjør
Dette verktøyet konverterer en JSON-fil til en CSV-fil. Du laster opp en JSON-fil (eller drar og slipper den), velger skilletegn (komma, semikolon eller tabulator), forhåndsviser tabellen og laster ned den konverterte filen. All behandling skjer i nettleseren din – ingenting lastes opp til noen server.
Det som skiller denne konverteringen fra for eksempel CSV-til-Excel eller Excel-til-JSON, er retningen: JSON er et hierarkisk og typebasert format, mens CSV er flatt og uten typer. Når du går fra JSON til CSV, må den hierarkiske strukturen flates ut. Dette verktøyet gjør det ved å bruke punktnotasjon (dot-path notation) for å representere nestede objekter. For eksempel blir {"address": {"city": "Oslo"}} til kolonnen address.city i CSV-en. Du velger selv om utdata skal bruke komma, semikolon eller tabulator som skilletegn – et valg som får direkte konsekvenser for hvordan regnearkprogrammer tolker filen.
Forskjellen på JSON og CSV – hvorfor flating er nødvendig
JSON støtter objekter, matriser, tall, boolske verdier og null i nestede strukturer. CSV har ingen typer, ingen nesting og ingen ark. Konverteringen mister all typeinformasjon, nestet struktur, eventuelle flere ark (finnes ikke i JSON) og formatering. Alle verdier blir strenger i CSV. For å representere nestede JSON-objekter i en flat CSV, flater verktøyet ut objektnøkler ved hjelp av punktnotasjon.
Tenk på en JSON-fil med en matrise av objekter som representerer personer:
[
{"navn": "Kari", "alder": 34, "adresse": {"by": "Bergen", "postnr": "5003"}},
{"navn": "Ola", "alder": 28, "adresse": {"by": "Oslo", "postnr": "0150"}}
]
Etter konvertering med komma som skilletegn blir CSV-en slik:
navn,alder,adresse.by,adresse.postnr
Kari,34,Bergen,5003
Ola,28,Oslo,0150
Legg merke til at alder var et tall i JSON, men blir en streng i CSV. adresse-objektet er flatet ut til to kolonner med punktnotasjon. postnr-verdien 0150 har en ledende null – den kan forsvinne når CSV-en åpnes i et regnearkprogram som tolker raden som et tall. Verktøyet bevarer den som streng i CSV-filen, men nedstrømsprogramvare håndterer den ikke alltid korrekt.
Hvis JSON-en er en matrise av matriser (array of arrays), blir hver indre matrise en rad, og elementene blir kolonner uten objektnøkler. For eksempel:
[
["Oslo", 34, true],
["Bergen", 28, false]
]
blir:
0,1,2
Oslo,34,true
Bergen,28,false
Her blir kolonnene navngitt med indekser (0, 1, 2) fordi det ikke finnes objektnøkler å hente. Den boolske verdien true blir strengen "true" – all typeinformasjon er borte.
Hvordan flating fungerer – punktnotasjon og tabellform
Punktnotasjon er en standard måte å representere hierarkiske stier i flate strukturer. Verktøyet bruker denne notasjonen for å lage kolonnenavn. Hvis et objekt har flere nivåer med nesting, blir stien sammenkjedet med punktum. For eksempel:
"a":{"b":{"c": 1}}→ kolonnea.b.cmed verdien1."x":[{"y": 2}, {"y": 3}]→ flere rader, der hvert element i matrisen blir en rad, ogx.yblir kolonnen.
Hvis JSON-en inneholder matriser med primitiver (som ``), blir de bevart som en del av raden, men CSV-en håndterer dette ved å sette anførselstegn rundt verdier som inneholder skilletegn eller linjeskift.
Verktøyet krever at JSON-en er "tabellformet" – det vil si en enkelt matrise av objekter eller en matrise av matriser. Hvis JSON-en er ugyldig eller ikke tabellformet, vises feilmeldingen: "This JSON is invalid or not table‑shaped." Dette er den vanligste årsaken til at konverteringen stopper opp. En JSON-fil som består av et enkelt objekt ({"a":1, "b":2}) er ikke tabellformet fordi det ikke finnes noen matrise å iterere over. Du må pakke det inn i en matrise: [{"a":1, "b":2}].
Praktisk bruk – inndata, utdata og innstillinger
Inndata: En enkelt JSON-fil. Verktøyet godtar også CSV og XLSX som inndata, men kun JSON er relevant her. Du velger utdataformat: CSV. Du velger skilletegn: komma, semikolon eller tabulator. Valg av skilletegn er viktig fordi CSV-filer bruker skilletegn for å skille kolonner. Hvis dataene dine inneholder kommaer, bør du vurdere semikolon eller tabulator for å unngå feiltolkning. For norske lokaler er semikolon vanlig i CSV-filer fordi komma brukes som desimaltegn.
Utdata: En CSV-fil klar for nedlasting. Verktøyet viser en forhåndsvisning av den konverterte tabellen, antall rader og kolonner, og filstørrelsen på utdatafilen.
CSV-siteringsregler brukes automatisk: verdier som inneholder skilletegn, linjeskift eller anførselstegn, blir pakket inn i anførselstegn. Interne anførselstegn i verdier escapes ved å doble dem. For eksempel blir verdien "Han sa "hei"" til """Han sa ""hei""" i CSV-en. Dette følger RFC 4180-standarden for CSV.
Verktøyet har flere innebygde grenser. Hvis filen er for stor, vises feilmeldingen "This file is too large. Use a file under ‹max›." Det er også grenser for antall rader og kolonner. Ved for mange rader vises "This table has more than ‹max› rows.", og ved for mange kolonner vises "This table has more than ‹max› columns." Disse grensene er satt for å hindre at nettleseren henger seg under konverteringen.
Personvern og klient-side behandling
En viktig egenskap ved dette verktøyet er at all databehandling skjer i nettleseren din. Ingen data lastes opp til noen server. Dette er en fordel for personvernsensitive arbeidsflyter, for eksempel ved behandling av personopplysninger, helsedata eller forretningshemmeligheter. Du kan konvertere JSON til CSV uten å bekymre deg for at dataene forlater maskinen din. Når du laster ned CSV-filen, finnes den bare lokalt på din egen datamaskin.
Teknisk sett betyr det at JavaScript-koden som utfører konverteringen, kjører fullstendig i nettleserens minne. JSON-filen leses via File API, parses, flates ut og skrives til en ny Blob som tilbys for nedlasting. Ingen HTTP-forespørsler sendes under prosessen.
Andre feilmeldinger du kan støte på:
- "Choose one file first." – Hvis ingen fil er valgt før du prøver å konvertere.
- "Choose a CSV, JSON or XLSX file." – Hvis filtypen ikke er en av de tre støttede.
- "Choose a different output format." – Hvis du prøver å konvertere til samme format som inndata (mindre relevant her siden inndata er JSON og utdata er CSV).
- "Could not convert this file." – Ved uventede konverteringsfeil, for eksempel korrupte data.
- "Conversion cancelled." – Hvis brukeren avbryter konverteringen.
- "This conversion is taking too long. Try a smaller file." – Hvis konverteringen overskrider en tidsgrense, typisk for svært store filer.
Vanlige feil og begrensninger du bør kjenne til
Når du konverterer JSON til CSV, er det flere fallgruver du bør være oppmerksom på:
Typeinformasjon går tapt. Tall, boolske verdier og null blir alle til strenger. Hvis du senere importerer CSV-en til et regneark, kan tall tolkes som tekst, og null blir den tomme strengen eller strengen "null" avhengig av kilde. JSON-en [{"verdi": null}] blir til CSV-verdien "" (tom streng), ikke noe spesialtegn.
Ledende nuller kan forsvinne. For eksempel kan postnummeret "0150" bli til 150 hvis regnearkprogrammet tolker det som et tall. Dette er ikke noe verktøyet kan forhindre – det er en egenskap ved CSV-formatet og måten regneark leser det på. Du kan legge til et enkelt anførselstegn (apostrof) foran i CSV-en, men verktøyet gjør ikke dette automatisk fordi det ikke fins noen generell CSV-standard for å bevare ledende nuller.
Nestet struktur går tapt. Punktnotasjon bevarer stien, men den opprinnelige hierarkiske strukturen kan ikke rekonstrueres fra CSV-en alene. Hvis du trenger å gå tilbake til JSON, må du bruke et CSV-til-JSON-verktøy og håpe at punktnotasjonen tolkes riktig. Det fins ingen standard måte å gjøre dette på, så resultatet kan variere.
Matriser med varierende lengde. Hvis JSON-en inneholder matriser med forskjellig antall elementer, kan CSV-en få hull eller ekstra kolonner. Verktøyet håndterer dette ved å lage kolonner for maksimalt antall elementer og fylle manglende med tomme verdier. Dette kan føre til mange tomme celler.
Innebygde kommaer og linjeskift. CSV-standarden krever at verdier med skilletegn, linjeskift eller anførselstegn pakkes inn i anførselstegn. Verktøyet gjør dette automatisk, men du bør være oppmerksom på at linjeskift inne i en celle kan skape problemer i noen CSV-lesere. Eldre programmer kan tolke linjeskiftet som en ny rad.
Koding. JSON bruker UTF-8 som standard. CSV-filen fra verktøyet er også i UTF-8. Noen eldre regnearkprogrammer kan ha problemer med UTF-8, spesielt på Windows. Du må kanskje konvertere til ANSI eller Latin-1 for kompatibilitet. Dette verktøyet tilbyr ingen kodekonvertering – du må gjøre det manuelt i et teksteditor eller bruke et eget konverteringsverktøy.
Ofte stilte spørsmål
Hvorfor blir JSON-objektet mitt til kolonner med punktum i navnet?
Det er punktnotasjonen som brukes for å flate ut nestede strukturer. {"adresse": {"by": "Oslo"}} blir til kolonnen adresse.by. Dette er den eneste måten å bevare den hierarkiske stien i et flatt format uten å miste informasjon om hvilket nivå verdien kom fra. Du kan ikke endre dette i verktøyet.
Kan jeg konvertere en JSON-fil med flere nivåer med nesting?
Ja, men alle nivåer flates ut med punktnotasjon. Hvis du har {"a":{"b":{"c": 1}}}, blir kolonnen a.b.c. Vær oppmerksom på at dybden kan føre til svært lange kolonnenavn. CSV-standarden har ingen grense for kolonnenavnlengde, men noen regnearkprogrammer som Excel har en grense på 255 tegn per kolonnenavn.
Hva skjer hvis JSON-en inneholder en matrise med objekter med forskjellige nøkler?
Verktøyet lager kolonner for alle unike nøkler på tvers av objektene. Objekter som mangler en nøkkel, får tom verdi i den kolonnen. Dette kan føre til et ujevnt tabellutseende, men det er den mest praktiske måten å håndtere varierende strukturer på. For eksempel gir [{"a":1}, {"b":2}] kolonnene a og b, der første rad har verdien 1 i kolonne a og tomt i kolonne b.
Hvorfor blir tallene i CSV-en mine tolket som tekst når jeg åpner filen i Excel? Fordi alle verdier i CSV-en er strenger. JSON-typer som tall og boolske verdier bevares ikke. Når du åpner CSV-en i Excel, tolker Excel verdiene basert på innholdet. Hvis Excel ser et tall, prøver det å konvertere det til tall, men dette kan mislykkes for eksempel for postnummer med ledende nuller. Du kan prøve å importere CSV-en i Excel med "Fra tekst/CSV"-funksjonen og angi kolonneformat manuelt som tekst for de aktuelle kolonnene.
Er det trygt å konvertere sensitive JSON-data med dette verktøyet? Ja, fordi all behandling skjer i nettleseren din. Ingen data lastes opp til noen server. Dette er spesielt viktig for personopplysninger, helsedata eller forretningshemmeligheter. Du trenger ikke å bekymre deg for at dataene blir sett av andre. Dette er en av de viktigste forskjellene fra nettbaserte konverteringstjenester som sender data til en ekstern server.
Hva betyr "This JSON is invalid or not table‑shaped"?
JSON-en må være en matrise av objekter (array of objects) eller en matrise av matriser (array of arrays). Hvis den er et enkelt objekt, et enkelt tall, en streng eller noe annet, vises denne feilmeldingen. Sørg for at JSON-filen din starter med [ og inneholder en liste over elementer med samme struktur. Test alltid JSON-en med en validator før du prøver å konvertere.