CSV (Comma-Separated Values) to format tabelaryczny w postaci zwykłego tekstu, w którym każda linia stanowi rekord danych, a pola w ramach rekordu są oddzielone separatorem — najczęściej przecinkiem. CSV jest standardowym formatem wymiany danych od początków ery komputerów osobistych, sformalizowanym w RFC 4180. Arkusze kalkulacyjne, bazy danych i narzędzia do eksportu danych generują pliki CSV, ponieważ są one proste, zwięzłe i obsługiwane przez praktycznie każdy język programowania.
JSON (JavaScript Object Notation) reprezentuje dane strukturalne jako pary klucz-wartość i uporządkowane tablice. W odróżnieniu od CSV, JSON obsługuje zagnieżdżone obiekty, wartości typowane (liczby, wartości logiczne, null) oraz rekordy o zmiennej długości. Ponieważ JSON jest natywnie rozumiany przez silniki JavaScript, jest dominującym formatem wymiany danych między przeglądarką a serwerem oraz formatem odpowiedzi REST API. Cechy te sprawiają, że JSON jest domyślnym formatem dla web API, plików konfiguracyjnych i baz danych NoSQL, takich jak MongoDB i CouchDB.
Konwersja CSV do JSON polega na mapowaniu każdego wiersza tabeli na obiekt JSON, przy czym wiersz nagłówkowy staje się nazwami właściwości, a wartości komórek — wartościami właściwości. Wynikiem jest zazwyczaj tablica JSON obiektów. Konwersja ta jest niezbędna wszędzie tam, gdzie należy przekazać płaskie dane tabelaryczne do systemu oczekującego strukturalnych danych JSON — np. do REST API, komponentu tabeli danych we frontendzie lub bazy danych dokumentowej.
Dlaczego warto używać tego narzędzia?
Ten konwerter analizuje Twój plik CSV w przeglądarce, natychmiast generuje wyjście JSON i nigdy nie przesyła danych na serwer.
⚡
Natychmiastowa konwersja
Wklej CSV i od razu otrzymaj wyjście JSON. Żadnego oczekiwania na odpowiedź serwera ani przesyłania pliku. Konwersja odbywa się w trakcie pisania.
🔒
Przetwarzanie z zachowaniem prywatności
Twoje dane pozostają w zakładce przeglądarki. Nic nie jest przesyłane przez sieć. Bezpieczne dla wewnętrznych zbiorów danych, danych uwierzytelniających lub danych osobowych, które nie powinny opuszczać Twojego urządzenia.
🔀
Automatyczne wykrywanie separatora
Narzędzie rozpoznaje separatory: przecinek, tabulator, średnik i pipe. Możesz też ustawić separator ręcznie, jeśli plik używa niestandardowego znaku podziału.
📋
Kopiowanie lub pobieranie
Skopiuj wynik JSON do schowka jednym kliknięciem lub pobierz go jako plik .json. Gotowy do bezpośredniego użycia w kodzie, kliencie API lub przy importowaniu do bazy danych.
Przypadki użycia konwersji CSV do JSON
Tworzenie frontendu
Konwertuj eksport CSV z narzędzia do projektowania lub arkusza kalkulacyjnego na JSON, aby używać go jako danych testowych dla komponentów React, Vue lub Angular podczas prototypowania.
Wstępne zasilanie danych API backendu
Przekształcaj zrzuty bazy danych w CSV na ładunki JSON służące do zasilania REST lub GraphQL API. Wiele ORM-ów i narzędzi migracyjnych akceptuje pliki JSON jako dane początkowe.
Konfiguracja DevOps
Konwertuj listy inwentaryzacyjne CSV lub macierze środowiskowe na JSON do użycia w playbookach Ansible, plikach zmiennych Terraform lub konfiguracji potoków CI/CD.
Przygotowanie danych testowych QA
Przekształcaj macierze testowe z arkuszy kalkulacyjnych w tablice JSON, które mogą być konsumowane przez frameworki testowe, takie jak Jest, pytest lub Playwright, na potrzeby testowania sterowanego danymi.
Potoki inżynierii danych
Konwertuj wyjście CSV z zapytań SQL lub eksportów ETL na JSON w celu ładowania do magazynów dokumentów, takich jak MongoDB, Elasticsearch lub trybu ingestii JSON w BigQuery.
Projekty studenckie i nauka
Szybko konwertuj przykładowe zbiory danych CSV (Kaggle, portale otwartych danych rządowych) na JSON do użycia w projektach webowych, samouczkach lub projektach osobistych.
Informacje o separatorach CSV
Pliki CSV nie zawsze używają przecinków. Separator zależy od ustawień regionalnych, aplikacji eksportującej i zawartości danych. Oto cztery najczęściej stosowane separatory i typowe przypadki ich użycia:
Separator
Standard
Rozszerzenie
Uwagi
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 a JSON: różnice strukturalne
Różnica między tymi dwoma formatami sprawia, że mapowanie nagłówków, wnioskowanie typów i obsługa brakujących wartości wymagają jawnych decyzji podczas konwersji.
CSV
Płaski format wierszowy. Każdy rekord ma tę samą liczbę pól. Wszystkie wartości są ciągami znaków, chyba że konsument wnioskuje typy. Brak obsługi zagnieżdżania i rekordów o zmiennej liczbie pól. Wiersz nagłówkowy jest opcjonalny według RFC 4180, ale wymagany dla sensownej konwersji do JSON.
JSON
Format drzewiasty, samoopisujący. Każdy obiekt może mieć inne klucze. Wartości są typowane: ciąg znaków, liczba, wartość logiczna, null, obiekt lub tablica. Obsługuje dowolną głębokość zagnieżdżania. Kolejność właściwości nie jest gwarantowana przez specyfikację JSON (ECMA-404), choć większość parserów zachowuje kolejność wstawiania.
Przykłady kodu
Jak programowo konwertować CSV do JSON w popularnych językach i narzędziach CLI:
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)
"
Często zadawane pytania
Jak konwerter obsługuje pliki CSV bez wiersza nagłówkowego?
Jeśli plik CSV nie ma wiersza nagłówkowego, konwerter używa automatycznie generowanych kluczy, takich jak "field1", "field2" itd. Dla najlepszych wyników dodaj wiersz nagłówkowy przed konwersją lub zmień nazwy kluczy w wyjściu JSON po jej zakończeniu.
Co się dzieje z polami w cudzysłowach zawierającymi przecinki lub znaki nowej linii?
Parser przestrzega zasad cytowania RFC 4180. Pola ujęte w podwójne cudzysłowy mogą zawierać przecinki, znaki nowej linii, a nawet podwójne cudzysłowy (zapisane jako ""). Konwerter usuwa zewnętrzne cudzysłowy i zachowuje wewnętrzną zawartość jako pojedynczą wartość ciągu JSON.
Czy konwersja zachowuje typy danych, takie jak liczby i wartości logiczne?
CSV jest formatem bez typów — wszystkie wartości komórek są ciągami znaków. Ten konwerter domyślnie zwraca wartości jako ciągi, aby uniknąć utraty danych. Jeśli potrzebujesz wyjścia z typami, sparsuj wynik JSON w swojej aplikacji i jawnie rzutuj pola. Biblioteki takie jak Papa Parse (JavaScript) i pandas (Python) oferują opcje dynamicznego typowania podczas parsowania.
Czy mogę konwertować CSV z średnikami lub tabulatorami zamiast przecinków?
Tak. Narzędzie obsługuje separatory: przecinek, tabulator, średnik i pipe. Wybierz właściwy separator z listy rozwijanej lub pozwól automatycznemu wykrywaniu go rozpoznać. Średniki są powszechne w eksportach CSV z ustawieniami regionalnymi dla Europy w programie Excel, gdzie przecinek pełni funkcję separatora dziesiętnego.
Czy istnieje limit rozmiaru dla wejścia CSV?
Ponieważ przetwarzanie odbywa się całkowicie w przeglądarce, praktyczny limit zależy od dostępnej pamięci urządzenia. Pliki do 10–20 MB zazwyczaj konwertują się bez problemów na nowoczesnym sprzęcie. W przypadku bardzo dużych plików (setki MB) użyj parsera strumieniowego, takiego jak Papa Parse w Node.js lub moduł csv w Pythonie, które przetwarzają dane wiersz po wierszu bez ładowania wszystkiego do pamięci.
Jak obsługiwać wiersze CSV z różną liczbą kolumn?
Nieregularne pliki CSV (wiersze z mniejszą lub większą liczbą pól niż nagłówek) są powszechne w rzeczywistych eksportach. Ten konwerter wypełnia brakujące pola pustymi ciągami i ignoruje dodatkowe pola poza liczbą kolumn nagłówka. Jeśli dane są konsekwentnie nieregularne, sprawdź plik źródłowy pod kątem nieopakowanych separatorów lub brakujących cudzysłowów.
Jaka jest różnica między wyjściem jako tablica JSON a obiekt JSON?
Tablica obiektów JSON jest standardowym wyjściem: każdy wiersz CSV staje się jednym obiektem w tablicy, z nazwami nagłówków jako kluczami. Niektóre narzędzia oferują też wyjście "kolumnowe", gdzie każdy nagłówek staje się kluczem z tablicą wszystkich wartości w tej kolumnie. Format tablicy obiektów jest częściej stosowany dla API, baz danych i wiązania danych we frontendzie.