JSON to CSV

Konvertera JSON-matris till CSV-format

Körs lokalt · Säkert att klistra in hemligheter
CSV visas här…

Vad är JSON till CSV-konvertering?

JSON till CSV-konvertering omvandlar strukturerad data från JSON-format till kommaseparerade värden, ett tabellformat som kalkylblad, databaser och analysverktyg hanterar direkt. JSON lagrar data som nästlade objekt och matriser utan ett fast schema. CSV lagrar data som rader och kolumner med en rubrikrad som definierar fältnamn. Konverteringen är hur API-data når kalkylblad och databaser.

CSV (Comma-Separated Values) definieras av RFC 4180. Varje rad är en post, och fält inom en rad separeras av ett avgränsningstecken, vanligast ett komma. Fält som innehåller avgränsningstecknet, dubbla citattecken eller radbrytningar måste omges av dubbla citattecken, med interna citattecken escapade genom att fördubbla dem. Denna escapning är den vanligaste källan till buggar när man skriver en JSON-till-CSV-omvandlare för hand.

Konverteringen är enkel när inmatningen är en platt matris av objekt med konsekventa nycklar. Varje objekt blir en rad, och varje unik nyckel blir en kolumnrubrik. Nästlade objekt och matriser kräver ett tillplatningssteg, och inkonsekventa nycklar mellan objekt kräver en strategi för att hantera saknade fält — vanligtvis genom att lämna cellen tom. En pålitlig omvandlare hanterar alla dessa kantfall automatiskt.

Varför konvertera JSON till CSV?

API:er returnerar JSON, men kalkylblad, SQL-databaser och BI-verktyg förväntar sig tabelldata. Att konvertera JSON till CSV låter dig flytta data mellan dessa system utan att skriva anpassade importskript.

Omedelbar konvertering i webbläsaren
Klistra in din JSON och ladda ner filen direkt. Ingen serveruppladdning, inga filstorleksbegränsningar från externa API:er, inget väntande på bearbetningsköer.
🔒
Integritetsfokuserad bearbetning
Din data stannar i din webbläsare. Konverteringen körs helt i JavaScript på din enhet. Databasexporter, användarposter och finansiell data lämnar aldrig din dator.
🔀
Stöd för flera avgränsare
Välj mellan komma, semikolon, tab eller pipe som avgränsare. Använd semikolon för kalkylblad med europeisk lokalisering, tabbar för TSV-filer, eller pipe för import till äldre system.
📋
Inget konto krävs
Öppna sidan och konvertera. Ingen registrering, ingen API-nyckel, ingen CLI-installation. Fungerar på alla enheter med en modern webbläsare.

Användningsfall för JSON till CSV

API-dataexport till kalkylblad
REST API:er returnerar JSON. Produktchefer och analytiker behöver den datan i Excel eller Google Sheets. Konvertera API-svaret till CSV och öppna det direkt i valfritt kalkylbladsprogram.
Massimport till databaser
PostgreSQL COPY, MySQL LOAD DATA och SQLite .import accepterar alla CSV. Konvertera ditt dataset till tabellformat för snabb massimport utan att skriva ett anpassat importskript.
Prototypning av ETL-pipeline
ETL-pipelines har ofta mellanliggande utdata som är svåra att inspektera som rå JSON. Konvertera ett stegs utdata till CSV och öppna det i ett kalkylblad för att verifiera transformationer innan du kopplar ihop hela pipelinen.
Förberedelse av testdata för QA
QA-ingenjörer genererar testfixturer som JSON, men många testramverk och datadrivna testverktyg accepterar CSV för parametriserade testinmatningar. Konvertera fixturer till CSV utan manuell omformatering.
Logganalys och rapportering
Strukturerade JSON-loggar från applikationer och molntjänster kan konverteras till CSV för import till BI-verktyg som Tableau, Power BI eller Looker för visualisering och rapportering.
Akademisk databearbetning
Studenter och forskare som arbetar med öppna data-API:er får JSON-svar. Att konvertera till CSV möjliggör analys i R, pandas, SPSS eller Excel utan att skriva tolkningskod.

Referens för CSV-avgränsare

Avgränsningstecknet separerar fält inom varje rad. Komma är vanligast, men andra avgränsare är standard i specifika sammanhang. Att välja fel avgränsare gör att fält slås samman eller delas upp felaktigt när filen öppnas.

AvgränsareTeckenFiländelseNär används det
Comma,.csvDefault for most spreadsheets and databases
Semicolon;.csvStandard in locales where comma is a decimal separator (DE, FR, BR)
Tab\t.tsvAvoids escaping when field values contain commas or semicolons
Pipe|.csvUsed in fixed-width legacy systems and some ETL pipelines

Hantering av nästlad JSON i CSV

CSV är ett platt format utan ett inbyggt sätt att representera nästlade objekt eller matriser. När din JSON innehåller nästlade strukturer måste omvandlaren tillplatta dem till kolumner. Det finns flera strategier, och rätt val beror på hur CSV:n ska konsumeras.

Tillplatning med punktnotation
Nästlade nycklar sammanfogas med punkter: {"address": {"city": "Stockholm"}} blir en kolumn med namnet address.city och värdet Stockholm. Detta är det vanligaste tillvägagångssättet och fungerar bra med verktyg som stöder nästlade fältreferenser.
Kolumner med matrisindex
Matriser expanderas till numrerade kolumner: {"tags": ["a", "b"]} blir tags.0 = a, tags.1 = b. Detta bevarar alla värden men skapar många kolumner när matriser är stora.
JSON-sträng som reservlösning
Komplexa nästlade värden serialiseras som JSON-strängar i CSV-cellen: cellen innehåller den råa JSON-texten. Detta bevarar hela strukturen men kräver att konsumenten tolkar cellvärdet.
Ignorering av nästlade fält
Vissa omvandlare utelämnar nästlade objekt och matriser helt och hållet och behåller bara skalärfält (sträng, tal, booleskt, null). Detta ger ren CSV men förlorar data. Användbart bara när du vet att de nästlade fälten inte behövs.

Kodexempel

Att konvertera JSON till CSV programmatiskt kräver hantering av rubrikextraktion, fältcitering och avgränsarescapning. De flesta språk har inbyggt eller standardbiblioteksstöd för CSV-skrivning.

JavaScript (Node.js)
const data = [
  { name: "Alice", age: 30, city: "Berlin" },
  { name: "Bob", age: 25, city: "Tokyo" },
]

// Extract headers from the first object
const headers = Object.keys(data[0])
const csv = [
  headers.join(","),
  ...data.map(row => headers.map(h => {
    const val = String(row[h] ?? "")
    // Quote fields that contain commas, quotes, or newlines
    return val.includes(",") || val.includes('"') || val.includes("\n")
      ? '"' + val.replace(/"/g, '""') + '"'
      : val
  }).join(","))
].join("\n")

console.log(csv)
// → name,age,city
// → Alice,30,Berlin
// → Bob,25,Tokyo
Python
import json, csv, io

json_str = '[{"name":"Alice","age":30,"city":"Berlin"},{"name":"Bob","age":25,"city":"Tokyo"}]'
data = json.loads(json_str)

output = io.StringIO()
writer = csv.DictWriter(output, fieldnames=data[0].keys())
writer.writeheader()
writer.writerows(data)

print(output.getvalue())
# → name,age,city
# → Alice,30,Berlin
# → Bob,25,Tokyo
CLI (jq + Miller)
# Using jq to convert JSON array to CSV
echo '[{"name":"Alice","age":30},{"name":"Bob","age":25}]' | \
  jq -r '(.[0] | keys_unsorted) as $k | $k, (.[] | [.[$k[]]] ) | @csv'
# → "name","age"
# → "Alice",30
# → "Bob",25

# Using Miller (mlr) for streaming conversion
echo '[{"name":"Alice","age":30}]' | mlr --json --ocsv cat
# → name,age
# → Alice,30
Go
package main

import (
    "encoding/csv"
    "encoding/json"
    "fmt"
    "os"
)

func main() {
    jsonStr := `[{"name":"Alice","age":30},{"name":"Bob","age":25}]`
    var data []map[string]interface{}
    json.Unmarshal([]byte(jsonStr), &data)

    w := csv.NewWriter(os.Stdout)
    // Write header
    headers := []string{"name", "age"}
    w.Write(headers)
    // Write rows
    for _, row := range data {
        record := make([]string, len(headers))
        for i, h := range headers {
            record[i] = fmt.Sprintf("%v", row[h])
        }
        w.Write(record)
    }
    w.Flush()
    // → name,age
    // → Alice,30
    // → Bob,25
}

Vanliga frågor

Vilken JSON-struktur förväntar sig den här omvandlaren?
Omvandlaren förväntar sig en JSON-matris av objekt, som [{"name":"Erik"},{"name":"Anna"}]. Varje objekt i matrisen blir en rad i utdata, och objektnycklarna blir kolumnrubriker. Ett enskilt JSON-objekt (inte inneslutet i en matris) behandlas som en tabell med en rad.
Hur hanteras nästlade objekt och matriser?
Nästlade värden tillplattnas med punktnotation. Till exempel ger {"address":{"city":"Stockholm"}'} en kolumn med namnet address.city. Matriser expanderas till indexerade kolumner (tags.0, tags.1). Detta bevarar data samtidigt som utdata hålls platt.
Vad händer när objekt har olika nycklar?
Omvandlaren samlar alla unika nycklar från alla objekt i matrisen och använder dem som kolumnrubriker. Objekt som saknar en nyckel får en tom cell för den kolumnen. Ingen data går förlorad, och kolumnordningen följer ordningen i vilken nycklar först förekommer.
Kan jag använda semikolon eller tab istället för komma?
Ja. Verktyget stöder komma, semikolon, tab och pipe som avgränsare. Använd semikolon när din data eller lokalisering använder komma som decimalseparator (vanligt i tyska, franska och brasilianska kalkylblad). Använd tabbar för TSV-filer som konsumeras av Unix-verktyg.
Är konverteringen förlustfri?
För platta JSON-matriser med konsekventa skalarvärden, ja. Utdatafilen innehåller samma data och kan konverteras tillbaka till identisk JSON. För nästlade strukturer förändrar tillplatningen dataformen. Matriser serialiserade till indexerade kolumner eller JSON-strängar kan rekonstrueras, men rundturen kräver kännedom om den ursprungliga strukturen.
Hur stor JSON-fil kan jag konvertera?
Verktyget körs i din webbläsare och bearbetar data i minnet — filer upp till 10–20 MB konverteras utan problem på moderna enheter. För filer som är större än så, använd ett CLI-verktyg som jq, Miller, eller ett Python-skript med csv-modulen, som bearbetar data som en ström.
Är det säkert att klistra in känslig data i det här verktyget?
Ja. All bearbetning sker i din webbläsare med JavaScript. Ingen data skickas till någon server. Du kan bekräfta detta genom att öppna webbläsarens utvecklarverktyg och kontrollera fliken Nätverk under konverteringen.