Spring til indhold

CSV til JSON Konverter - Gratis Online Filkonverteringsværktøj

Konverter CSV til JSON og JSON til CSV øjeblikkeligt i din browser. Sikker, hurtig datakonvertering med forhåndsvisning og download. Ingen uploads påkrævet.

CSV/JSON Fil Konverter

Konverter mellem CSV og JSON formater med lethed. Upload din fil, se forhåndsvisningen af dataene og download det konverterede resultat.

CSV til JSON Konverter

JSON til CSV Konverter

Indlæsningsberegner...
📚

Dokumentation

Hvad er en CSV-til-JSON-konverter?

En CSV-til-JSON-konverter er et værktøj, der ændrer data fra CSV-format (kommaseparerede værdier) til JSON-format (JavaScript Object Notation) eller omvendt. Konverteringen kører udelukkende i webbrowseren. Den sender aldrig den uploadede fil til en server, så dataene bliver på brugerens enhed.

CSV er et almindeligt tekstformat, der bruges til at gemme tabeller, f.eks. regneark eksporteret fra Excel eller Google Sheets. JSON er et tekstformat, der består af nøgleværdi-par, og som i vid udstrækning bruges til at flytte data mellem webapplikationer og API'er. Da de to formater organiserer data forskelligt, kræver konvertering mellem dem et fast regelsæt, som beskrives nedenfor.

Sådan konverteres CSV til JSON

  1. Klik på "Upload CSV-fil", og vælg en .csv-fil på enheden.
  2. Værktøjet viser en forhåndsvisning af filens råindhold.
  3. Klik på "Konvertér til JSON". Værktøjet læser den første linje som kolonneoverskrifter og omdanner alle øvrige linjer til hvert sit JSON-objekt.
  4. Resultatet vises i forhåndsvisningen af outputtet med indrykning.
  5. Klik på "Download JSON" for at gemme det som en .json-fil, eller på "Kopiér JSON" for at kopiere teksten.

Sådan konverteres JSON til CSV

  1. Klik på "Upload JSON-fil", og vælg en .json-fil. Filen skal indeholde et JSON-array af objekter, f.eks. [{"Name":"Ann"},{"Name":"Bo"}].
  2. Værktøjet viser en forhåndsvisning af den rå JSON-tekst.
  3. Klik på "Konvertér til CSV". Værktøjet samler alle nøgler, der bruges på tværs af objekterne, og omdanner hver nøgle til en kolonne.
  4. Resultatet vises i forhåndsvisningen af outputtet som CSV-tekst.
  5. Klik på "Download CSV" for at gemme det som en .csv-fil, eller på "Kopiér CSV" for at kopiere teksten.

Der er ingen uploadbegrænsninger håndhævet af en server, fordi ingen af dataene forlader browseren. En meget stor fil kan dog stadig gøre browserfanen langsommere, eftersom hele filen opbevares i hukommelsen under konverteringen.

Regler for konvertering fra CSV til JSON

Konverteren læser filens første række som kolonnenavne. Hver efterfølgende række bliver til ét JSON-objekt med kolonnenavnene som nøgler. En række med flere værdier end overskrifter får ekstra nøgler, der navngives efter deres absolutte placering i rækken, så med 3 overskrifter får en fjerde værdi nøglen field_4, en femte field_5 og så videre. Dermed går ingen data tabt. En række med færre værdier får tomme strenge for de manglende nøgler. Hvis to overskrifter har samme navn, omdøbes den anden med et suffiks, så a, a bliver til nøglerne a og a_2.

Konverteren følger CSV-reglerne i RFC 4180, den tekniske standard for formatet. Et komma i et felt behandles kun som en værdi i feltet og ikke som et kolonneskift, hvis feltet er omsluttet af dobbelte anførselstegn, f.eks. "Smith, John". Et linjeskift i anførselstegn bevares som en del af værdien i stedet for at blive behandlet som en ny række. To dobbelte anførselstegn i et felt i anførselstegn repræsenterer ét bogstaveligt anførselstegn.

Kun kommaer genkendes som kolonneskilletegn; værktøjet registrerer eller understøtter ikke semikoloner, tabulatorer eller andre skilletegn.

Hver værdi kontrolleres og konverteres til en datatype:

  • En værdi, der er skrevet som et almindeligt tal, f.eks. 42 eller -3.5, bliver til et JSON-tal.
  • Teksten true eller false (uanset store og små bogstaver) bliver til en JSON-boolean.
  • Alt andet forbliver en JSON-streng, herunder tomme celler, som bliver til tomme strenge.
  • Et tal med et indledende nul, f.eks. 00512, forbliver en streng, fordi det indledende nul ofte har betydning, som i et postnummer eller et ID-nummer.
  • Et tal accepteres kun, hvis det giver præcis den samme tekst, når det skrives ud igen. Lange heltal over 9,007,199,254,740,991, det største heltal som et JavaScript-tal kan repræsentere præcist, består normalt ikke denne kontrol og forbliver strenge, så ingen cifre går tabt.
  • En værdi, som filen allerede har omsluttet af anførselstegn, bevares altid som en streng, også hvis den ligner et tal, fordi anførselstegn fortolkes som forfatterens markering af, at den er tekst.

Tomme linjer i filen springes over og danner ikke tomme objekter.

Regler for konvertering fra JSON til CSV

Konverteren gennemgår hvert objekt i arrayet og samler alle de nøgler, der bruges på tværs af dem. Disse nøgler bliver CSV-kolonneoverskrifter i den rækkefølge, de først forekommer. Hvis ét objekt mangler en nøgle, som et andet objekt har, forbliver cellen tom i stedet for at udløse en fejl.

JSON til CSV flader ikke indlejrede objekter ud i separate kolonner. En værdi, der selv er et objekt eller et array, skrives tilbage som JSON-tekst i en enkelt celle, så {"b": 1} bliver til cellen {"b":1}, og [1, 2] bliver til cellen [1,2]. Intet går tabt, men den indlejrede del forbliver i én kolonne i stedet for at blive opdelt. Udflad først den indlejrede JSON manuelt, hvis hver del skal have sin egen kolonne.

En værdi på null samt en nøgle, som ét objekt har, men et andet mangler, giver begge en tom celle.

En celleværdi, der indeholder et komma, et anførselstegn eller et linjeskift, omsluttes af dobbelte anførselstegn i outputtet, og alle anførselstegn i den fordobles i overensstemmelse med CSV-escape-reglen ovenfor.

Input-JSON skal være et array, og hvert element i det skal være et objekt. Et tal, en streng, null eller et indlejret array i stedet for et objekt giver fejlen "JSON skal være et array af objekter". Et array uden elementer giver fejlen "JSON-arrayet er tomt. Tilføj mindst ét objekt, der skal konverteres." En uploadet fil uden indhold giver fejlen "Den uploadede fil er tom."

Regneeksempel

Oprindelig CSV-fil:

1Name,Age,Member
2Ann Lee,29,true
3"Bo, Jr.",7,false
4

Konvertering til JSON giver:

1[
2  {
3    "Name": "Ann Lee",
4    "Age": 29,
5    "Member": true
6  },
7  {
8    "Name": "Bo, Jr.",
9    "Age": 7,
10    "Member": false
11  }
12]
13

Bemærk, at "Bo, Jr." beholdt sit komma, fordi feltet var omsluttet af anførselstegn i kildefilen, og at Age og Member blev konverteret til henholdsvis et tal og en boolean.

Når den samme JSON konverteres tilbage til CSV med en tilføjet række, hvor Age mangler, giver det:

1Name,Age,Member
2Ann Lee,29,true
3"Bo, Jr.",7,false
4Cy Tan,,true
5

Den manglende værdi for Age bliver til en tom celle, og kommaet i "Bo, Jr." medfører, at feltet igen omsluttes af anførselstegn under konverteringen tilbage.

Almindelige anvendelser

  • Dataanalyse: at omdanne en CSV-eksport fra et regneark eller et analyseværktøj til JSON, så den kan behandles med JavaScript, og derefter konvertere resultaterne tilbage til CSV til en rapport.
  • API-test: En udvikler, der bygger et API, som accepterer CSV-uploads, kan konvertere eksempelfiler til JSON for at kontrollere, at en parser producerer de forventede objekter.
  • Datamigrering: at flytte poster fra et system, der eksporterer CSV, til et system, der kun accepterer JSON, eller omvendt.
  • Hurtig inspektion: at omdanne en JSON-fil til en tabellignende CSV for at gøre den lettere at læse eller omvendt.

Programmeringsbiblioteker tilbyder den samme konvertering til større eller gentagne opgaver, f.eks. modulerne csv og json i Python eller pandas. Kommandolinjeværktøjer som csvkit og jq håndterer konvertering og filtrering fra en terminal. Disse muligheder egner sig til batchbehandling; dette browserværktøj egner sig til en enkelt fil uden installation.

Ofte stillede spørgsmål

Sendes den uploadede fil til en server? Nej. Konverteringen kører i JavaScript inde i browserfanen. Filen læses fra den lokale enhed og sendes aldrig videre.

Understøtter konverteren andre skilletegn end kommaer, f.eks. semikolon eller tabulator? Nej. Den aktuelle version læser kun kommaseparerede værdier. En fil med et andet skilletegn skal først konverteres til kommasepareret format, f.eks. ved at erstatte skilletegnet i en teksteditor.

Hvorfor blev et tal som 00512 ved med at være en tekststreng i JSON-outputtet? Indledende nuller har normalt betydning, som i et postnummer, så konverteren bevarer værdien som en streng i stedet for at omdanne den til tallet 512, hvilket ville fjerne nullet.

Hvad sker der, hvis jeg konverterer JSON, der indeholder indlejrede objekter? Det indlejrede objekt skrives som JSON-tekst i en enkelt celle, f.eks. {"b":1}. Dataene bevares, men de opdeles ikke i separate kolonner. Udflad først de indlejrede data, hvis hvert felt skal have sin egen kolonne.

Hvad hvis min JSON ikke er et array af objekter? Værktøjet viser en fejl og konverterer ikke noget. Inputtet skal være et JSON-array, hvor hvert element er et objekt, f.eks. [{"a":1},{"a":2}].

Skal den første række i en CSV-fil altid være en overskriftsrække? Ja. Konverteren behandler altid den første række som kolonnenavne. En fil uden overskriftsrække får sin første datarække fejlagtigt læst som overskrifter.

Referencer

  1. Shafranovich, Y. "Common Format and MIME Type for Comma-Separated Values (CSV) Files." RFC 4180, IETF, oktober 2005. https://www.rfc-editor.org/rfc/rfc4180
  2. Bray, T., red. "The JavaScript Object Notation (JSON) Data Interchange Format." RFC 8259, IETF, december 2017. https://www.rfc-editor.org/rfc/rfc8259
  3. "Working with JSON." MDN Web Docs, Mozilla. https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Scripting/JSON