Der erste JSON-zu-CSV-Konverter, den ich je geschrieben habe, dauerte drei Tage in der Produktion.
Es war ein & quot; in Tabellenkalkulation exportieren" Schaltfläche in einem Laravel-Admin-Panel, und meine Konvertierungslogik war - I & #39; darauf sind Sie nicht stolz values.join(",")drohen Es segelte durch Tests. Dann exportierte ein Benutzer eine Kundenliste, in der ein Unternehmen "Smith, Jones & amp; Partner" genannt wurde, und jede Spalte, nachdem sie eine Position nach rechts verschoben hatte. Ihr Buchhalter importierte 340 Zeilen falsch ausgerichteter Daten, bevor jemand bemerkte, dass die Telefonnummern in der E-Mail-Spalte waren.
Das Komma in CSV ist kein Trennzeichen, das Sie sich anschließen können. Es ist eine Grammatik, definiert in RFC 4180, mit tatsächlichen flüchtigen Regeln. Dieser Fehler ist der Grund, warum die JSON-zu-CSV-Konverter Später habe ich für Toolz.dev entwickelt und behandelt das Entkommen als nicht verhandelbar - und warum dieser Leitfaden Echtzeit auf den Randfällen verbringt, nicht nur auf dem glücklichen Weg.
Hier sind die fünf Methoden, die ich tatsächlich verwende, wenn jede gewinnt und wo jeder beißt.
tl; dr: Fügen Sie bei einmaligen Konvertierungen Ihren JSON in die Toolz.dev JSON zu CSV-Konverter- es flacht verschachtelte Objekte mit Punktnotation ab, entweicht korrekt pro RFC 4180 und läuft zu 100% in Ihrem Browser Für wiederkehrende Jobs scripten Sie es:
pd.json_normalize()in Python oder diejson2csvPaket im Knoten. validieren mit dem JSON-Formater Erstens ist die ursprüngliche JSON-CSV-Glättung einseitig.
Warum benötigen Sie CSV, wenn Sie JSON bereits haben?
Weil die Personen, die Ihre Daten benötigen, nicht in Ihrem Terminal leben. Jede Umstellungsanfrage, die ich je bekommen habe, reduziert sich auf eine von fünf Situationen:
Analysten arbeiten in Tabellenkalkulationen. Excel, Google Sheets, Tableau, Power BI - sie alle inhalieren CSV nativ und ersticken auf verschachteltem JSON Durch die Konvertierung der API-Ausgabe in CSV gelangen technische Daten auf die Unternehmensseite.
Datenbanken Bulk-Import Flat Files. PostgreSQL COPY und MySQL & # 39; S. LOAD DATA wollen tabellarische Eingabe. JSON-Spalten existieren, aber das Laden in reale Beziehungstabellen bedeutet zuerst Abflachen.
Migrationen brauchen eine Lingua Franca. Verschieben von Daten zwischen einem NoSQL-Speicher und einem relationalen oder zwischen zwei SaaS-Plattformen ist CSV das Format, das beide Enden zuverlässig verstehen.
Compliance mag Flatfiles. Einige Archivierungsanforderungen legen für Menschen lesbare Formate fest. Ein CSV öffnet sich in irgendetwas, in Jahrzehnten.
Stakeholder können JSON nicht lesen. Ein Produktmanager, der "Kann ich das als Tabelle bekommen?", Ist der häufigste Auslöser. Es war der Auslöser für meine kaputte Exporttaste.

Was macht die Konvertierung von JSON-in-CSV-Dateien schwierig?
Flat JSON ist trivial. das:
[
{"id": 1, "name": "Alice", "email": "[email protected]", "age": 30},
{"id": 2, "name": "Bob", "email": "[email protected]", "age": 25}
]
wird dies, Schlüssel zu Headern, Elemente zu Zeilen:
id,name,email,age
1,Alice,[email protected],30
2,Bob,[email protected],25
Aber echte API-Antworten sind nie flach. Sie sehen so aus:
[
{
"id": 1,
"name": "Alice",
"address": {"street": "123 Main St", "city": "San Francisco", "state": "CA"},
"skills": ["JavaScript", "Python", "Go"]
}
]
CSV hat kein Konzept von "innen" und Sie wählen also eine Abflachungsstrategie und jede hat Kosten:
Punkt-Notation- verschachtelte Schlüssel werden zu zusammengesetzten Headern:
id,name,address.street,address.city,address.state,skills
1,Alice,123 Main St,San Francisco,CA,"JavaScript; Python; Go"
Indizierte Spalten für Arrays- skills.0, skills.1, skills.2drohen Vorhersehbar, aber ein Rekord mit 14 Fähigkeiten erzeugt 14 Spalten für alle.
JSON-kodierte Zellen- stopfen Sie das rohe JSON in die Zelle, doppelt zitiert Verlustlos, unlesbar, und es macht Analysten traurig.
Punktnotation mit verbundenen Arrays ist die richtige Standardeinstellung für den menschlichen Verzehr - it's was die Toolz.dev-Konverter produziert. Indizierte Spalten gewinnen, wenn der Downstream-Code jedes Element adressierbar benötigt. JSON-in-Cells ist ein letzter Ausweg für Round-Tripping.
Methode 1: Wie konvertiert man JSON online in CSV?
Am besten für: Einmalige Konvertierungen, Nicht-Entwickler, alles unter ein paar Dutzend MB.
- Öffne das JSON-zu-CSV-Konverterdrohen
- Fügen Sie Ihr JSON ein - ein Array von Objekten oder ein einzelnes Objekt.
- Das Tool erkennt die Struktur, flacht verschachtelte Objekte in Punktnotation ab und rendert die CSV sofort.
- Kopieren Sie es oder laden Sie die
.csvdrohen
Der Grund, warum ich dies über ein Skript für alles, was nicht wiederkehrend ist, standardmäßig vornehme: Null-Setup, korrektes RFC 4180-Escaping (diese Lektion gelernt), automatische Schlüsselunion über inkonsistente Objekte hinweg und - weil it's-Client-Seite - die API-Antwort voller Kunden-E-Mails, die Sie gerade eingefügt haben, verlässt nie Ihren Computer Sehen Sie sich die Registerkarte Netzwerk an, wenn Sie #39; glauben Sie mir nicht; dass & #39; der Test ist, den ich auf jeden Online-Konverter anwende, und die meisten scheitern daran.
Wo es das falsche Werkzeug ist: wiederkehrende Konvertierungen (Skript-IT) und tief pathologische Verschachtelung, bei der Sie die Abflachungsstrategie von Hand auswählen möchten.

Methode 2: Wie konvertiert man JSON in CSV in Javascript?
Am besten für: Erstellen Sie Pipelines, Knotendienste, benutzerdefinierte Transformationslogik.
Hier und #39; ist die minimal korrekte Version - beachten Sie die Flucht, die der Teil ist, den meine dreitägige Katastrophe übersprungen hat:
function jsonToCsv(jsonArray) {
if (!jsonArray.length) return "";
const headers = Object.keys(jsonArray[0]);
const csvRows = [
headers.join(","),
...jsonArray.map(row =>
headers.map(header => {
const value = row[header] ?? "";
// RFC 4180: double embedded quotes, wrap anything containing , " or newline
const escaped = String(value).replace(/"/g, '""');
return /[,"\n\r]/.test(escaped) ? `"${escaped}"` : escaped;
}).join(",")
)
];
return csvRows.join("\n");
}
Bei verschachtelten Eingaben drücken Sie zuerst die Tasten ab und vereinen Sie sie - wenn Sie Header nur vom ersten Objekt übernehmen, ist dies der zweithäufigste Fehler bei handgewalzten Konvertern:
function flattenObject(obj, prefix = "") {
const result = {};
for (const [key, value] of Object.entries(obj)) {
const newKey = prefix ? `${prefix}.${key}` : key;
if (value && typeof value === "object" && !Array.isArray(value)) {
Object.assign(result, flattenObject(value, newKey));
} else if (Array.isArray(value)) {
result[newKey] = value.join("; ");
} else {
result[newKey] = value;
}
}
return result;
}
function nestedJsonToCsv(jsonArray) {
const flattened = jsonArray.map(item => flattenObject(item));
// Union of ALL keys, not just the first object's
const headers = [...new Set(flattened.flatMap(Object.keys))];
// ...then emit rows exactly as in jsonToCsv above
}
Oder lassen Sie das Handrollen - die json2csv Das Paket hat diese Kanten seit Jahren bewältigt:
import { Parser } from "json2csv";
const parser = new Parser({ flatten: true });
const csv = parser.parse(data);
Methode 3: Wie konvertiert man JSON in Python in CSV?
Am besten für: Data Science Workflows, alles, was bereits Pandas berührt.
Der Pandas-Einzeiler deckt Flat JSON ab:
import pandas as pd
df = pd.read_json("data.json")
df.to_csv("output.csv", index=False)
Die wirklich nützliche Funktion ist pd.json_normalize()- speziell für verschachtelte API-Antworten erstellt:
import pandas as pd
import requests
response = requests.get("https://api.example.com/users")
df = pd.json_normalize(response.json())
print(df.columns.tolist())
# ['id', 'name', 'skills', 'address.street', 'address.city', 'address.state']
# Arrays still need a decision — join them explicitly:
df["skills"] = df["skills"].apply(lambda x: "; ".join(x) if isinstance(x, list) else x)
df.to_csv("output.csv", index=False)
Beachten Sie, dass json_normalize flacht genestet Objekte Aber geht Arrays Wie Python listet - wenn Sie den Join-Schritt überspringen, enthalten Ihre CSV-Zellen ['JavaScript', 'Python'] wörtlich. Jeder trifft das einmal.
Keine Pandas verfügbar? Die Standardbibliothek verarbeitet Flat JSON FINE:
import json, csv
with open("data.json") as f:
data = json.load(f)
with open("output.csv", "w", newline="") as f:
writer = csv.DictWriter(f, fieldnames=data[0].keys())
writer.writeheader()
writer.writerows(data)
Methode 4: Wie konvertiert man JSON von der Befehlszeile in CSV?
Am besten für: Shell-Skripte, CI-Pipelines, Server, bei denen die Installation von Pandas übertrieben ist.
jq macht es nativ mit @csv, das richtig entkommt:
cat data.json | jq -r '
(.[0] | keys_unsorted) as $keys |
($keys | @csv),
(.[] | [.[$keys[]]] | @csv)
'
csvkit& # 39; S. in2csv ist die mangelnde Option:
pip install csvkit
in2csv data.json > output.csv
und Miller (mlr) glänzt, wenn Sie im selben Durchgang filtern möchten:
mlr --json2csv filter '$age > 25' data.json > output.csv
Die Zusammensetzbarkeit ist der Punkt - curl -s api.example.com/data | jq ... > report.csv ist eine vollständige API-zu-Tabellenkalkulations-Pipeline in einer Zeile von Cron.
Methode 5: Können Sie JSON direkt in Excel oder Google Sheets importieren?
Am besten für: Nicht-Entwickler, Live-Erfrischungsdaten, einmalige Importe.
überragen: Daten → Daten abrufen → aus dem Web einfügen, die API-URL einfügen und Power Query bietet Ihnen einen visuellen Editor, um verschachtelte Datensätze vor dem Laden zu erweitern. Echt gut für wiederholte Aktualisierungen derselben Quelle.
Google-Sheets: Erweiterungen → Apps-Skript, dann eine kleine Abruffunktion:
function importJSON(url) {
const response = UrlFetchApp.fetch(url);
const data = JSON.parse(response.getContentText());
if (!Array.isArray(data) || data.length === 0) return [["No data"]];
const headers = Object.keys(data[0]);
const rows = data.map(item => headers.map(h => item[h] ?? ""));
return [headers, ...rows];
}
in einer Zelle als verwendet =importJSON("https://api.example.com/data")drohen
Ehrliches Nehmen: für einmalige Importe, Konvertierung mit dem Online-Tool Und das Öffnen des CSV ist schneller als beides. Die nativen Tabellenkalkulationsrouten verdienen ihre Einrichtungskosten nur, wenn die Daten nach einem Zeitplan aktualisiert werden.
Welche Methode sollten Sie wählen?
| Methode | Einrichtung | Geschachtelter JSON | Wiederkehrende Verwendung | Daten bleiben lokal |
|---|---|---|---|---|
| Online-Konverter | keine | automatisch | jedes Mal manuell | Ja - clientseitig |
| Javascript / JSON2CSV | npm install | über flatten |
hervorragend | ja |
| Python / Pandas | PIP-Installation | json_normalize |
hervorragend | ja |
| JQ / CSVKIT / MLR | Paketmanager | Manuelle Pfade | Ausgezeichnet (Cron / CI) | ja |
| Excel / Blätter | Konto / App | UI der Stromabfrage | Gut (automatisch auffrischen) | Excel: Ja; Tabellen: Google-Server |
Meine Regel: Griff zum Browser-Tool bis zum dritten Mal I'm konvertiert die gleiche Form von Daten - dann wird daraus ein Skript.
Welche Edge-Fälle brechen die JSON-zu-CSV-Konvertierung?
Vier Fallen machen fast jeden kaputten Export aus, den ich debuggt habe:
inkonsistente Schlüssel. Objekt 1 hat email, Objekt 2 hat phone3, Objekt 3 hat beides Nehmen Sie Header nur vom ersten Objekt und Sie lassen Daten stillschweigend fallen Der Fix ist eine Schlüsselunion über alle Objekte hinweg, mit fehlenden Werten als leere Zellen - was gute Werkzeuge automatisch tun.
ungeschützte Sonderzeichen. Das Problem "Smith, Jones & amp; Partner". Pro RFC 4180: Umschließen von Werten, die Kommas, Anführungszeichen oder Zeilenumbrüche in doppelten Anführungszeichen enthalten, und doppelte Anführungszeichen ("He said ""hello""").).
Große Dateien. Nach etwa 100 MB wird das Parsen ganzer Dateien schmerzhaft Stream statt - jq Streams, Pandas liest in Chunks und das JSON-Linienformat (ein Objekt pro Zeile) erleichtert beides. Für Dateien bis zu ein paar Dutzend MB ist das Browsertool in Ordnung, da es keinen Upload gibt.
Codierung. Namen und Adressen tragen Nicht-ASCII-Zeichen. Halten Sie alles UTF-8 durch und seien Sie auf Excel unter Windows, was historisch gesehen wollte, dass eine Stückliste UTF-8 korrekt erkennt.
Und eine Praxis, die nicht optional ist: validieren, bevor Sie konvertieren. Eine verkürzte JSON-Datei schlägt verwirrend in der Mitte der Konvertierung fehl, aber offensichtlich in der JSON-Formaterdrohen 30 Sekunden Validierung schlägt zehn Minuten "Warum ist meine CSV leer"
Häufig gestellte Fragen
Wie konvertiere ich JSON kostenlos online in CSV?
Fügen Sie Ihren JSON in die ein JSON zu CSV-Konverter auf Toolz.dev- es generiert sofort CSV mit verschachtelten Objekten, die abgeflacht sind und über das Escape-Verfahren abgewickelt werden, und ermöglicht Ihnen dann das Kopieren oder Herunterladen des Ergebnisses. Keine Anmeldung und die Verarbeitung erfolgt zu 100% clientseitig, sodass Ihre Daten Ihren Browser nie verlassen.
Kann ich verschachteltes JSON in CSV konvertieren?
Ja. Verschachtelte Objekte flach in Punkt-Notation-Header (address.city) und Arrays werden entweder zu einer getrennten Zeichenfolge verbunden oder in indexierte Spalten aufgeteilt. der Toolz.dev-Konverter wendet die Punktnotation automatisch an; in Python, pd.json_normalize() macht das gleiche.
Wie konvertiere ich eine JSON-Datei in Python in CSV?
import pandas as pd; pd.read_json("data.json").to_csv("output.csv", index=False) für flache JSON. Bei verschachtelten Strukturen verwenden pd.json_normalize(data) Erstens - und denken Sie daran, selbst Array-Spalten zu verbinden, da die Normalisierung die Listen intakt lässt.
Was ist der beste Weg, um sehr große JSON-Dateien zu konvertieren?
Streamen statt laden: jq in der Befehlszeile oder Pandas mit chunked Reads. Das Konvertieren der Datei in JSON-Linien (ein Objekt pro Zeile) erleichtert das Streaming zunächst erheblich. Browsertools sind bis zu ein paar Dutzend MB bequem; über ~100 MB über die Befehlszeile.
Wie konvertiere ich CSV zurück in JSON?
der CSV-zu-JSON-Konverter Macht die Fahrt rückgängig - jede Zeile wird zu einem Objekt, das von der Kopfzeile eingegeben wird Programmatisch: pd.read_csv("data.csv").to_json(orient="records")drohen
Warum hat meine CSV Zitate um einige Werte?
Das ist korrektes Verhalten, kein Fehler. RFC 4180 erfordert doppelte Anführungszeichen um jeden Wert, der Kommas, Zeilen oder Anführungszeichen enthält, wobei eingebettete Anführungszeichen verdoppelt werden. Tabellenkalkulationen und Parser streifen sie beim Lesen ab.
Ist die JSON-zu-CSV-Konvertierung verlustfrei?
Für flaches JSON ja. Für verschachteltes JSON überleben die Werte, aber die Hierarchie tut & #39; t - Punktnotationsheader sind abgeflacht Darstellungund Sie können nicht immer die genaue ursprüngliche Verschachtelung von ihnen rekonstruieren. Behalten Sie die Quelle JSON bei; behandeln Sie die CSV als abgeleitete Ansicht.
Warum sind meine Spalten nach dem Konvertieren falsch ausgerichtet?
Fast immer ein Fluchtfehler: ein Wert, der ein Komma enthielt, wurde & #39; t zitiert, also sehen Parser ab diesem Zeitpunkt zusätzliche Spalten. It& #39; s der genaue Fehler von meinem Laravel-Export-Button Verwenden Sie einen Konverter, der RFC 4180 anstelle von String-Joining-Werten implementiert - und wenn Sie Ihre eigenen geschrieben haben, testen Sie es mit einem Wert wie Smith, Jones & Partnersdrohen
Wie konvertiere ich JSON in Excel oder Google Sheets in CSV?
Beide Apps importieren JSON über einen Helfer und nicht durch eine Paste. Verwenden Sie in Excel Daten → Daten abrufen → aus Datei → Von JSON, dann flach die Abfrage in Power Query und schließen und laden. Fügen Sie in Google Sheets kleine Arrays über ein temporäres Apps-Skript ein oder konvertieren Sie mit dem JSON-zu-CSV-Konverter Öffnen Sie zunächst die resultierende Datei - normalerweise den schnelleren Pfad für ein Einzelstück.
Welche JSON-zu-CSV-Methode soll ich verwenden?
Für eine schnelle Einzeluntersuchung ist ein clientseitiger Konverter am schnellsten und hält Daten privat. Verwenden Sie für wiederholbare Pipelines Python mit Pandas; für große Dateien streamen Sie mit jq in der Befehlszeile und greifen Sie nur zum Tabellenkalkulationsimport, wenn Nicht-Entwickler den Workflow besitzen. Passen Sie das Werkzeug an, wie oft Sie den Job wiederholen, nicht nur auf die Größe der Datei.
Passen Sie die Methode an den Job an
JSON-zu-CSV sieht aus wie ein gelöster Einzeiler, bis ein Komma in einem Firmennamen 340 Zeilen mit Kundendaten um eine Spalte nach rechts verschiebt. Die Methode ist weniger wichtig als die Einhaltung des Formats: Escape per RFC 4180, Vereinigung Ihrer Schlüssel, Entscheiden Sie absichtlich Ihre Abflachungsstrategie und behalten Sie das ursprüngliche JSON.
Für die nächste einmalige Umstellung ist JSON-zu-CSV-Konverter ist der fünfzehn-Sekunden-Pfad. validieren Sie zuerst mit dem JSON-Formaterund wenn die Daten zurückreisen müssen, CSV-zu-JSON-Konverter Schließt die Schleife - alle drei in Ihrem Browser, keiner von ihnen sieht jemals Ihre Datenserverseite.
Verwandte Artikel:
- Der ultimative Leitfaden für JSON-Tools (2026)
- So formatieren Sie JSON Online: Komplette Anleitung mit Beispielen
- Kostenlose Online-Texttools-Anleitung



