CSV (Comma-Separated Values) je textový tabulkový formát, kde každý řádek představuje datový záznam a pole v záznamu jsou oddělena oddělovacím znakem, nejčastěji čárkou. CSV je standardním formátem pro výměnu dat od počátků osobních počítačů a byl formalizován ve specifikaci RFC 4180. Tabulkové procesory, databáze a nástroje pro export dat produkují CSV, protože je jednoduché, kompaktní a čitelné prakticky v každém programovacím jazyce.
JSON (JavaScript Object Notation) reprezentuje strukturovaná data jako páry klíč-hodnota a uspořádaná pole. Na rozdíl od CSV podporuje JSON vnořené objekty, typované hodnoty (čísla, logické hodnoty, null) a záznamy proměnné délky. Protože JSON nativně chápou JavaScriptové enginy, je dominantním formátem pro výměnu dat mezi prohlížečem a serverem a pro odpovědi REST API. Tyto vlastnosti z JSON dělají výchozí formát pro webová API, konfigurační soubory a NoSQL databáze jako MongoDB a CouchDB.
Převod CSV na JSON znamená mapování každého řádku tabulky na objekt JSON, přičemž záhlavní řádek slouží jako názvy vlastností a hodnoty buněk jako hodnoty vlastností. Výsledkem je typicky pole JSON objektů. Tento převod je nezbytný vždy, když potřebujete předat plochá tabulková data systému, který očekává strukturovaný JSON vstup — například REST API, komponentě datové tabulky ve frontendu nebo dokumentově orientované databázi.
Proč použít tento nástroj?
Tento převodník zpracovává CSV přímo v prohlížeči, okamžitě sestavuje výstup JSON a nikdy neodesílá vaše data na server.
⚡
Okamžitý převod
Vložte CSV a ihned získejte výstup JSON. Žádné čekání na server ani nahrávání souborů. Převod probíhá průběžně při psaní.
🔒
Zpracování s důrazem na soukromí
Vaše data zůstávají ve vašem prohlížeči. Nic se nepřenáší po síti. Bezpečné pro interní datové sady, přihlašovací údaje nebo osobní údaje, které nesmí opustit váš počítač.
🔀
Automatické rozpoznání oddělovače
Nástroj rozpozná oddělovače čárka, tabelátor, středník a svislá čára. Oddělovač lze také nastavit ručně, pokud váš soubor používá nestandardní oddělovač.
📋
Kopírování nebo stažení
Zkopírujte výsledek JSON do schránky jedním kliknutím nebo jej stáhněte jako soubor .json. Připraveno k přímému použití ve vašem kódu, API klientovi nebo pro import do databáze.
Případy použití CSV to JSON
Vývoj frontendu
Převeďte CSV export z nástroje pro návrh nebo tabulkového procesoru na JSON pro použití jako testovací data pro komponenty React, Vue nebo Angular při prototypování.
Plnění backend API
Transformujte dumpy databází ve formátu CSV na JSON payloady pro inicializaci REST nebo GraphQL API. Mnoho ORM a migračních nástrojů přijímá JSON přípravky pro počáteční načtení dat.
Konfigurace DevOps
Převeďte CSV seznamy inventáře nebo matice prostředí na JSON pro použití v Ansible playbookách, souborech proměnných Terraformu nebo konfiguracích CI/CD pipeline.
Příprava testovacích dat pro QA
Převeďte testovací matice z tabulek na pole JSON, která mohou testovací frameworky jako Jest, pytest nebo Playwright spotřebovat pro datově řízené testování.
Datové inženýrství a pipeline
Převeďte CSV výstup SQL dotazů nebo ETL exportů na JSON pro načtení do dokumentových úložišť jako MongoDB, Elasticsearch nebo do JSON ingest módu BigQuery.
Studentské projekty a výuka
Rychle převeďte vzorové CSV datové sady (Kaggle, vládní portály otevřených dat) na JSON pro použití ve výuce webového vývoje, tutoriálech nebo osobních projektech.
Přehled oddělovačů CSV
CSV soubory nepoužívají vždy čárky. Oddělovač závisí na jazykovém nastavení, exportující aplikaci a obsahu dat. Zde jsou čtyři nejběžnější oddělovače a kdy se typicky používají:
Oddělovač
Standard
Přípona
Poznámky
Comma (,)
RFC 4180 default
.csv
Most common; Excel default export
Tab (\t)
TSV variant
.tsv
Avoids quoting fields that contain commas
Semicolon (;)
European locale CSV
.csv
Used where comma is the decimal separator (DE, FR, BR)
Pipe (|)
Fixed-width alternative
.csv
Rare in field values, good for messy data
CSV vs JSON: strukturální rozdíly
Rozdíl mezi oběma formáty je důvodem, proč mapování záhlaví, odvozování typů a zpracování chybějících hodnot vyžadují při převodu explicitní rozhodnutí.
CSV
Plochý, řádkově orientovaný formát. Každý záznam má stejný počet polí. Všechny hodnoty jsou řetězce, pokud spotřebitel typy neodvodí. Bez podpory vnořování nebo záznamů proměnné délky. Záhlavní řádek je podle RFC 4180 volitelný, ale pro smysluplný převod na JSON je vyžadován.
JSON
Stromově strukturovaný, samodokumentující formát. Každý objekt může mít různé klíče. Hodnoty jsou typované: řetězec, číslo, logická hodnota, null, objekt nebo pole. Podporuje libovolnou hloubku vnořování. Pořadí vlastností není specifikací JSON (ECMA-404) zaručeno, ačkoli většina parserů zachovává pořadí vkládání.
Příklady kódu
Jak převést CSV na JSON programově v populárních jazycích a nástrojích příkazové řádky:
import csv, json, io
csv_string = """name,age,city
Alice,30,Berlin
Bob,25,Tokyo"""
reader = csv.DictReader(io.StringIO(csv_string))
data = [row for row in reader]
print(json.dumps(data, indent=2))
# → [{"name": "Alice", "age": "30", "city": "Berlin"}, ...]
# With type coercion (age as int)
import pandas as pd
df = pd.read_csv(io.StringIO(csv_string))
print(df.to_json(orient="records", indent=2))
# → [{"name": "Alice", "age": 30, "city": "Berlin"}, ...]
Go
package main
import (
"encoding/csv"
"encoding/json"
"fmt"
"strings"
)
func main() {
input := "name,age,city\nAlice,30,Berlin\nBob,25,Tokyo"
r := csv.NewReader(strings.NewReader(input))
records, _ := r.ReadAll()
headers := records[0]
var result []map[string]string
for _, row := range records[1:] {
obj := make(map[string]string)
for i, h := range headers {
obj[h] = row[i]
}
result = append(result, obj)
}
out, _ := json.MarshalIndent(result, "", " ")
fmt.Println(string(out))
// → [{"age":"30","city":"Berlin","name":"Alice"}, ...]
}
CLI (jq + Miller)
# Using Miller (mlr) — handles quoting, types, and edge cases
mlr --icsv --ojson cat data.csv
# → [{"name": "Alice", "age": 30, "city": "Berlin"}, ...]
# Using csvjson from csvkit (Python-based)
csvjson data.csv
# Using jq with @csv (reverse: JSON → CSV)
# For CSV → JSON, pipe through Miller or Python
cat data.csv | python3 -c "
import csv, json, sys
reader = csv.DictReader(sys.stdin)
json.dump(list(reader), sys.stdout, indent=2)
"
Časté dotazy
Jak převodník zpracovává CSV soubory bez záhlavního řádku?
Pokud CSV nemá záhlavní řádek, převodník použije automaticky generované klíče jako "field1", "field2" atd. Pro nejlepší výsledky přidejte záhlavní řádek před převodem nebo přejmenujte klíče ve výstupu JSON dodatečně.
Co se stane s uvozovanými poli, která obsahují čárky nebo konce řádků?
Parser dodržuje pravidla uvozování dle RFC 4180. Pole uzavřená do dvojitých uvozovek mohou obsahovat čárky, konce řádků a dokonce dvojité uvozovky (escapované jako ""). Převodník odstraní vnější uvozovky a zachová vnitřní obsah jako jednu hodnotu JSON řetězce.
Zachovává převod datové typy jako čísla a logické hodnoty?
CSV je formát bez typů; všechny hodnoty buněk jsou řetězce. Tento převodník standardně generuje řetězcové hodnoty, aby nedocházelo ke ztrátě dat. Pokud potřebujete typovaný výstup, zparsujte výsledek JSON ve své aplikaci a explicitně přetypujte pole. Knihovny jako Papa Parse (JavaScript) a pandas (Python) nabízejí možnost dynamického typování při parsování.
Mohu převádět CSV se středníky nebo tabelátory místo čárek?
Ano. Nástroj podporuje oddělovače čárka, tabelátor, středník a svislá čára. Vyberte správný oddělovač z rozbalovacího seznamu nebo nechte automatické rozpoznání, aby jej identifikovalo. Středníky jsou běžné v CSV exportech z Excelu s evropskými jazykovými nastaveními, kde čárka slouží jako oddělovač desetinných míst.
Existuje limit velikosti pro vstup CSV?
Protože zpracování probíhá zcela ve vašem prohlížeči, praktický limit závisí na dostupné paměti vašeho zařízení. Soubory do 10–20 MB se na moderním hardwaru obvykle převedou bez problémů. Pro velmi velké soubory (stovky MB) použijte streamovací parser jako Papa Parse v Node.js nebo modul csv v Pythonu, které zpracovávají data řádek po řádku bez načítání celého souboru do paměti.
Jak zpracovat CSV řádky s různým počtem sloupců?
Nepravidelná CSV (řádky s menším nebo větším počtem polí než záhlaví) jsou v reálných exportech běžná. Tento převodník doplní chybějící pole prázdnými řetězci a ignoruje pole přesahující počet záhlaví. Pokud jsou vaše data konzistentně nepravidelná, zkontrolujte zdrojový soubor na neescapované oddělovače nebo chybějící uvozovky.
Jaký je rozdíl mezi výstupem jako pole JSON a jako objekt JSON?
Pole objektů JSON je standardní výstup: každý řádek CSV se stane jedním objektem v poli, s názvy záhlaví jako klíči. Některé nástroje nabízejí také sloupcově orientovaný výstup, kde se každé záhlaví stane klíčem s polem všech hodnot daného sloupce. Formát pole objektů je běžnější pro API, databáze a datové vazby ve frontendu.