Převod JSON na CSV transformuje strukturovaná data z formátu JSON do hodnot oddělených čárkami — tabulkového formátu, který tabulkové procesory, databáze a analytické nástroje nativně přijímají. JSON ukládá data jako vnořené objekty a pole bez pevného schématu. CSV ukládá data jako řádky a sloupce, přičemž záhlaví definuje názvy polí. Převod je způsob, jak se data z API dostávají do tabulek a databází.
CSV (Comma-Separated Values) je definováno specifikací RFC 4180. Každý řádek je jeden záznam a pole v řádku jsou oddělena oddělovacím znakem, nejčastěji čárkou. Pole obsahující oddělovač, dvojité uvozovky nebo konce řádků musí být uzavřena do dvojitých uvozovek, přičemž interní uvozovky jsou zdvojeny. Toto escapování je hlavním zdrojem chyb při ručním psaní převodníku JSON na CSV.
Převod je přímočarý, pokud je vstupem ploché pole objektů s konzistentními klíči. Každý objekt se stane jedním řádkem a každý jedinečný klíč se stane záhlavím sloupce. Vnořené objekty a pole vyžadují krok zploštění a nekonzistentní klíče napříč objekty vyžadují strategii pro zpracování chybějících polí — typicky ponechání buňky prázdné. Spolehlivý převodník zvládá všechny tyto hraniční případy automaticky.
Proč převádět JSON na CSV?
API vrací JSON, ale tabulkové procesory, SQL databáze a BI nástroje očekávají tabulková data. Převod JSON na CSV umožňuje přesunovat data mezi těmito systémy bez psaní vlastních importních skriptů.
⚡
Okamžitý převod v prohlížeči
Vložte JSON a ihned stáhněte soubor. Žádné nahrávání na server, žádné limity velikosti souborů z externích API, žádné čekání na zpracování.
🔒
Zpracování s důrazem na soukromí
Vaše data zůstávají v prohlížeči. Převod probíhá výhradně v JavaScriptu na vašem zařízení. Exporty databází, záznamy uživatelů a finanční data nikdy neopustí váš počítač.
🔀
Podpora více oddělovačů
Vyberte si mezi čárkou, středníkem, tabelátorem nebo svislou čárou. Použijte středníky pro tabulky s evropskými jazykovými nastaveními, tabelátory pro soubory TSV nebo svislé čáry pro importy do starších systémů.
📋
Bez účtu
Otevřete stránku a převádějte. Bez registrace, bez API klíče, bez instalace CLI. Funguje na jakémkoli zařízení s moderním prohlížečem.
Případy použití JSON na CSV
Export dat z API do tabulek
REST API vrací JSON. Produktoví manažeři a analytici potřebují tato data v Excelu nebo Google Sheets. Převeďte API odpověď na CSV a otevřete ji přímo v libovolném tabulkovém procesoru.
Hromadný import do databáze
PostgreSQL COPY, MySQL LOAD DATA a SQLite .import přijímají CSV. Převeďte datovou sadu do tabulkového formátu pro rychlý hromadný import bez psaní vlastního importního skriptu.
Prototypování ETL pipeline
ETL pipeline mívají mezivýstupy, které je obtížné zkontrolovat jako surový JSON. Převeďte výstup jednoho kroku na CSV a otevřete jej v tabulce, abyste ověřili transformace před zapojením celé pipeline.
Příprava testovacích dat pro QA
QA inženýři generují testovací přípravky jako JSON, ale mnoho testovacích frameworků a nástrojů pro datově řízené testování přijímá CSV pro parametrizované vstupy. Převeďte přípravky na CSV bez ručního přeformátování.
Analýza logů a reportování
Strukturované JSON logy z aplikací a cloudových služeb lze převést na CSV pro import do BI nástrojů jako Tableau, Power BI nebo Looker pro vizualizaci a reportování.
Zpracování akademických dat
Studenti a výzkumníci pracující s otevřenými datovými API dostávají JSON odpovědi. Převod na CSV umožňuje analýzu v R, pandas, SPSS nebo Excelu bez psaní kódu pro parsování.
Přehled oddělovačů CSV
Oddělovací znak odděluje pole v každém řádku. Čárka je nejběžnější, ale jiné oddělovače jsou standardní v konkrétních kontextech. Volba nesprávného oddělovače způsobí, že se pole při otevření souboru sloučí nebo nesprávně rozdělí.
Oddělovač
Znak
Přípona
Kdy použít
Comma
,
.csv
Default for most spreadsheets and databases
Semicolon
;
.csv
Standard in locales where comma is a decimal separator (DE, FR, BR)
Tab
\t
.tsv
Avoids escaping when field values contain commas or semicolons
Pipe
|
.csv
Used in fixed-width legacy systems and some ETL pipelines
Zpracování vnořeného JSON v CSV
CSV je plochý formát bez nativní podpory pro reprezentaci vnořených objektů nebo polí. Pokud váš JSON obsahuje vnořené struktury, musí převodník tyto struktury zploštit do sloupců. Existuje několik strategií a správná volba závisí na tom, jak bude CSV spotřebováno.
Zploštění s tečkovou notací
Vnořené klíče jsou spojeny tečkami: {"address": {"city": "Praha"}} se stane sloupcem address.city s hodnotou Praha. Jde o nejběžnější přístup, který dobře funguje s nástroji podporujícími reference na vnořená pole.
Sloupce s indexy pole
Pole jsou rozvinuta do číslovaných sloupců: {"tags": ["a", "b"]} se stane tags.0 = a, tags.1 = b. Tím se zachovají všechny hodnoty, ale při velkých polích vznikne mnoho sloupců.
Záložní serializace jako JSON řetězec
Komplexní vnořené hodnoty jsou serializovány jako JSON řetězce uvnitř buňky CSV: buňka obsahuje surový JSON text. Tím se zachová celá struktura, ale spotřebitel musí hodnotu buňky zparsovat.
Ignorování vnořených polí
Některé převodníky vnořené objekty a pole zcela vynechávají a zachovávají pouze skalární (řetězec, číslo, logická hodnota, null) pole. Výsledkem je čisté CSV, ale dochází ke ztrátě dat. Užitečné pouze tehdy, když víte, že vnořená pole nejsou potřeba.
Příklady kódu
Programový převod JSON na CSV vyžaduje zpracování extrakce záhlaví, uvozování polí a escapování oddělovačů. Většina jazyků má vestavěnou nebo standardní podporu pro zápis CSV.
# 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
}
Časté dotazy
Jakou strukturu JSON převodník očekává?
Převodník očekává pole JSON objektů, jako je [{"name":"Alice"},{"name":"Bob"}]. Každý objekt v poli se stane jedním řádkem výstupu a klíče objektů se stanou záhlavími sloupců. Samostatný JSON objekt (nezabalený v poli) je zpracován jako tabulka s jedním řádkem.
Jak jsou zpracovány vnořené objekty a pole?
Vnořené hodnoty jsou zploštěny pomocí tečkové notace. Například {"address":{"city":"Praha"}'} vytvoří sloupec pojmenovaný address.city. Pole jsou rozvinuta do indexovaných sloupců (tags.0, tags.1). Tím se data zachovají při zachování plochého výstupu.
Co se stane, když mají objekty různé klíče?
Převodník shromáždí všechny jedinečné klíče ze všech objektů v poli a použije je jako záhlaví sloupců. Objekty postrádající klíč dostanou pro daný sloupec prázdnou buňku. Žádná data se neztrácí a pořadí sloupců odpovídá pořadí, v němž se klíče poprvé vyskytují.
Mohu použít středník nebo tabelátor místo čárky?
Ano. Nástroj podporuje oddělovače čárka, středník, tabelátor a svislá čára. Použijte středníky, pokud vaše data nebo jazykové nastavení používá čárky jako oddělovače desetinných míst (běžné v německých, francouzských a brazilských tabulkách). Použijte tabelátory pro soubory TSV zpracovávané unixovými nástroji.
Je převod bezztrátový?
Pro ploché pole JSON se konzistentními skalárními hodnotami ano. Výstupní soubor obsahuje stejná data a lze jej zpětně převést na identický JSON. U vnořených struktur zploštění mění tvar dat. Hodnoty polí serializované do indexovaných sloupců nebo JSON řetězců lze rekonstruovat, ale zpětný převod vyžaduje znalost původní struktury.
Jak velký soubor JSON mohu převést?
Nástroj běží ve vašem prohlížeči a zpracovává data v paměti — soubory do 10–20 MB se bez problémů převedou na moderních zařízeních. Pro větší soubory použijte CLI nástroj jako jq, Miller nebo Python skript s modulem csv, které zpracovávají data jako proud.
Je bezpečné vkládat do tohoto nástroje citlivá data?
Ano. Veškeré zpracování probíhá ve vašem prohlížeči pomocí JavaScriptu. Žádná data se nepřenáší na žádný server. Ověřit to můžete otevřením nástroje pro vývojáře v prohlížeči a sledováním záložky Síť během převodu.