Hoppa till innehåll

CSV till JSON-omvandlare - Gratis Online Filkonverteringsverktyg

Konvertera CSV till JSON och JSON till CSV direkt i din webbläsare. Säker, snabb datakonvertering med förhandsgranskning och nedladdning. Inga uppladdningar krävs.

CSV/JSON-filkonverterare

Konvertera enkelt mellan CSV- och JSON-format. Ladda upp din fil, förhandsgranska data och ladda ner den konverterade resultatfilen.

CSV till JSON-konverterare

JSON till CSV-konverterare

Laddningsberäknare...
📚

Dokumentation

Vad är en CSV till JSON-konverterare?

En CSV till JSON-konverterare är ett verktyg som ändrar data från formatet CSV (Comma-Separated Values) till formatet JSON (JavaScript Object Notation), eller tvärtom. Konverteraren körs helt i webbläsaren. Den skickar aldrig den uppladdade filen till en server, så data stannar på användarens enhet.

CSV är ett klartextformat som används för att lagra tabeller, till exempel kalkylblad som exporterats från Excel eller Google Kalkylark. JSON är ett textformat som bygger på nyckel-värdepar och som används brett för att överföra data mellan webbapplikationer och API:er. Eftersom formaten organiserar data på olika sätt kräver konvertering mellan dem en uppsättning definierade regler, som beskrivs nedan.

Så konverterar du CSV till JSON

  1. Klicka på ”Ladda upp CSV-fil” och välj en fil med ändelsen .csv från enheten.
  2. Verktyget visar en förhandsgranskning av det råa filinnehållet.
  3. Klicka på ”Konvertera till JSON”. Verktyget läser den första raden som kolumnrubriker och omvandlar varje efterföljande rad till ett JSON-objekt.
  4. Resultatet visas i förhandsgranskningen av utdata, formaterat med indrag.
  5. Klicka på ”Ladda ner JSON” för att spara det som en fil med ändelsen .json, eller på ”Kopiera JSON” för att kopiera texten.

Så konverterar du JSON till CSV

  1. Klicka på ”Ladda upp JSON-fil” och välj en fil med ändelsen .json. Filen måste innehålla en JSON-array med objekt, till exempel [{"Name":"Ann"},{"Name":"Bo"}].
  2. Verktyget visar en förhandsgranskning av den råa JSON-texten.
  3. Klicka på ”Konvertera till CSV”. Verktyget samlar in alla nycklar som används i objekten och omvandlar varje nyckel till en kolumn.
  4. Resultatet visas i förhandsgranskningen av utdata som CSV-text.
  5. Klicka på ”Ladda ner CSV” för att spara det som en fil med ändelsen .csv, eller på ”Kopiera CSV” för att kopiera texten.

Det finns inga uppladdningsbegränsningar som upprätthålls av en server, eftersom inga data lämnar webbläsaren. En mycket stor fil kan ändå göra webbläsarfliken långsammare, eftersom hela filen lagras i minnet medan den konverteras.

Regler för konvertering från CSV till JSON

Konverteraren läser filens första rad som kolumnnamn. Varje följande rad blir ett JSON-objekt, med kolumnnamnen som nycklar. En rad med fler värden än det finns rubriker får extra nycklar som namnges efter deras absoluta position i raden. Med 3 rubriker får alltså ett fjärde värde nyckeln field_4, ett femte värde field_5 och så vidare, vilket innebär att inga data går förlorade. En rad med färre värden får tomma strängar för de saknade nycklarna. Om två rubriker har samma namn döps den andra om med ett suffix, så att a, a blir nycklarna a och a_2.

Konverteraren följer CSV-reglerna i RFC 4180, den tekniska standarden för formatet. Ett kommatecken i ett fält behandlas bara som ett värde i det fältet, inte som en kolumnavgränsare, om fältet omges av dubbla citattecken, till exempel "Smith, John". En radbrytning inom citattecken behålls som en del av värdet i stället för att behandlas som en ny rad. Två dubbla citattecken i ett citerat fält representerar ett bokstavligt citattecken.

Endast kommatecken identifieras som kolumnavgränsare; verktyget upptäcker eller stöder inte semikolon, tabbar eller andra avgränsare.

Varje värde kontrolleras och omvandlas till en datatyp:

  • Ett värde som skrivs som ett vanligt tal, till exempel 42 eller -3.5, blir ett JSON-tal.
  • Texten true eller false, oavsett skiftläge, blir ett JSON-booleanvärde.
  • Allt annat förblir en JSON-sträng, inklusive tomma celler, som blir tomma strängar.
  • Ett tal med inledande nolla, till exempel 00512, förblir en sträng, eftersom den inledande nollan ofta har betydelse, som i ett postnummer eller ett ID-nummer.
  • Ett tal godkänns bara om det ger exakt samma text när det skrivs ut igen. Långa heltal över 9,007,199,254,740,991, det största heltal som ett JavaScript-tal kan lagra exakt, klarar normalt inte den kontrollen och förblir strängar, så att inga siffror går förlorade.
  • Ett värde som filen redan har omgett med citattecken behålls alltid som en sträng, även om det ser ut som ett tal, eftersom citattecknen tolkas som att upphovspersonen markerat det som text.

Tomma rader i filen hoppas över och ger inte upphov till tomma objekt.

Regler för konvertering från JSON till CSV

Konverteraren går igenom varje objekt i arrayen och samlar hela uppsättningen nycklar som används i dem. Dessa nycklar blir CSV-kolumnrubriker i den ordning de först förekommer. Om ett objekt saknar en nyckel som finns i ett annat objekt lämnas cellen tom i stället för att ett fel uppstår.

JSON till CSV plattar inte ut nästlade objekt till separata kolumner. Ett värde som självt är ett objekt eller en array skrivs tillbaka som JSON-text i en enda cell, så att {"b": 1} blir cellen {"b":1} och [1, 2] blir cellen [1,2]. Inga data går förlorade, men den nästlade delen förblir i en kolumn i stället för att delas upp. Platta ut nästlad JSON manuellt först om varje del behöver en egen kolumn.

Ett värde som är null, och en nyckel som finns i ett objekt men saknas i ett annat, ger båda upphov till en tom cell.

Ett cellvärde som innehåller ett kommatecken, ett citattecken eller en radbrytning omges av dubbla citattecken i utdata, och alla citattecken i värdet fördubblas, i enlighet med CSV-escaperegeln ovan.

Inmatad JSON måste vara en array, och varje element i den måste vara ett objekt. Ett tal, en sträng, null eller en nästlad array i stället för ett objekt ger felet ”JSON måste vara en array med objekt”. En array utan några element alls ger felet ”JSON-arrayen är tom. Lägg till minst ett objekt att konvertera.” En uppladdad fil utan innehåll ger felet ”Den uppladdade filen är tom.”

Räkneexempel

CSV-fil före konvertering:

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

Konvertering till JSON ger:

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

Observera att "Bo, Jr." behöll sitt kommatecken eftersom fältet var citerat i källfilen, och att Age och Member blev ett tal respektive ett booleskt värde.

Konvertering av samma JSON tillbaka till CSV, med en tillagd rad där Age saknas, ger:

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

Det saknade värdet för Age blir en tom cell, och kommatecknet i "Bo, Jr." gör att fältet citeras igen vid konverteringen tillbaka.

Vanliga användningsområden

  • Dataanalys: att omvandla en CSV-export från ett kalkylblad eller analysverktyg till JSON så att den kan bearbetas med JavaScript, och sedan konvertera resultaten tillbaka till CSV för en rapport.
  • API-testning: en utvecklare som bygger ett API som tar emot CSV-uppladdningar kan konvertera exempelfiler till JSON för att kontrollera att en tolk skapar de förväntade objekten.
  • Datamigrering: att flytta poster från ett system som exporterar CSV till ett system som endast accepterar JSON, eller tvärtom.
  • Snabb granskning: att omvandla en JSON-fil till CSV i tabellform för att läsa den enklare, eller tvärtom.

Programmeringsbibliotek erbjuder samma konvertering för större eller återkommande jobb, till exempel modulerna csv och json i Python, eller pandas. Kommandoradsverktyg som csvkit och jq hanterar konvertering och filtrering från en terminal. Dessa alternativ passar för batchbearbetning; det här webbläsarverktyget passar för en enstaka fil utan installation.

Vanliga frågor

Skickas den uppladdade filen till en server? Nej. Konverteringen körs i JavaScript inuti webbläsarfliken. Filen läses från den lokala enheten och överförs aldrig.

Stöder konverteraren andra avgränsare än kommatecken, till exempel semikolon eller tabbar? Nej. Den aktuella versionen läser endast kommaseparerade värden. En fil som använder en annan avgränsare måste först konverteras till kommaseparerat format, till exempel genom att ersätta avgränsaren i en textredigerare.

Varför förblev ett tal som 00512 en textsträng i JSON-utdata? Inledande nollor har vanligtvis betydelse, som i ett postnummer, så konverteraren behåller värdet som en sträng i stället för att omvandla det till talet 512, vilket skulle ta bort nollan.

Vad händer om jag konverterar JSON som innehåller nästlade objekt? Det nästlade objektet skrivs som JSON-text i en enda cell, till exempel {"b":1}. Data bevaras, men delas inte upp i separata kolumner. Platta ut nästlade data först om varje fält behöver en egen kolumn.

Vad händer om min JSON inte är en array med objekt? Verktyget visar ett fel och konverterar ingenting. Indata måste vara en JSON-array där varje element är ett objekt, till exempel [{"a":1},{"a":2}].

Måste den första raden i en CSV-fil alltid vara en rubrikrad? Ja. Konverteraren behandlar alltid den första raden som kolumnnamn. I en fil utan rubrikrad kommer den första dataraden att feltolkas som rubriker.

Referenser

  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