Czym jest konwersja CSV do JSON?
CSV (Comma-Separated Values, RFC 4180) to płaski, tabelaryczny format tekstowy; JSON (JavaScript Object Notation, RFC 8259) to tekstowy format danych o strukturze drzewa. Konwersja CSV do JSON przekształca tabelę przyjazną arkuszom kalkulacyjnym w tablicę obiektów przyjazną API — jeden obiekt na wiersz, z nagłówkiem jako kluczami — bez przepisywania ani jednej komórki.
Jak działa konwersja CSV do JSON?
Każda konwersja działa lokalnie w Twojej przeglądarce. Najważniejsze kroki to:
- Wklejasz CSV do panelu wejściowego i naciskasz KONWERTUJ; narzędzie parsuje tekst i emituje tablicę JSON obiektów w panelu wyjściowym.
- Automat stanów znak po znaku (FIELD_START → IN_UNQUOTED_FIELD lub IN_QUOTED_FIELD) przechodzi przez wejście, respektuje ucieczkę
"", rozpoznaje zarówno\r\n, jak i\njako terminatory wierszy i produkuje dwuwymiarową tablicę ciągów znaków jako reprezentację pośrednią. - Jeśli pierwszy wiersz jest oznaczony jako nagłówek, jego komórki stają się kluczami obiektów; w przeciwnym razie narzędzie generuje syntetyczne klucze
field0,field1, … by każdy wiersz nadal mapował się do kompletnego obiektu. - Separator (przecinek, średnik, tabulator, pionowa kreska lub wykrywanie automatyczne) oraz koercja typów (liczby / wartości logiczne /
null) są w pełni konfigurowalne. Z włączoną koercją30staje się liczbą 30, atruewartością logiczną; wyłączona — każda komórka pozostaje ciągiem znaków. - Wynik jest zapisywany do pola tekstowego tylko do odczytu jako tekst sformatowany przez
JSON.stringify, a link do pobrania buduje obiektBlobz typem MIMEapplication/json;charset=utf-8, abyś mógł zapisać wynik jednym kliknięciem.
Dlaczego konwertować CSV do JSON tym narzędziem?
- Prywatność: każde parsowanie i transformacja odbywa się w Twojej przeglądarce. Dane nigdy nie trafiają na nasze serwery.
- Poprawność: parser CSV to prawdziwy automat stanów. Pola zawierające przecinki w cudzysłowach (
"Bob, Jr."), osadzone znaki nowej linii i ucieczki cudzysłowów parsują się do jednej komórki, a nie do trzech — naiwne implementacjesplit(',')robią to źle. - Wierność typów: opcjonalna koercja zamienia komórki numeryczne i logiczne w prawdziwe liczby i wartości logiczne JSON, dzięki czemu wynikowa tablica jest gotowa do bezpośredniego użycia bez drugiego przejścia czyszczącego.
- Elastyczność: wybieraj dowolny separator dla niestandardowych dialektów CSV, konfiguruj czy pierwszy wiersz jest nagłówkiem i włączaj lub wyłączaj koercję typów tam, gdzie każda komórka musi pozostać ciągiem znaków.
Jakie są typowe zastosowania konwersji CSV do JSON?
Parsowanie CSV do JSON pojawia się w wielu obszarach pracy z danymi i narzędziami:
- Mockowanie API: wklejenie fikstury CSV wyeksportowanej z arkusza i przekonwertowanie jej na tablicę JSON, którą lokalny serwer może zwrócić jako zaślepiony endpoint.
- Import danych: zamiana eksportu arkusza (kontakty, inwentarz, odpowiedzi z ankiet) na tablicę JSON, którą aplikacja lub skrypt mogą iterować bez zależności od parsera CSV.
- Edycja konfiguracji: pozwolenie nietechnicznym recenzentom na edytowanie ustawień lub flag funkcji komórka po komórce w arkuszu, a następnie konwersja zapisanego CSV do JSON, który ładuje Twoja aplikacja.
Jak wygląda przykład konwersji CSV do JSON?
Wklejenie name,age w pierwszym wierszu, Alice,30 w drugim i "Bob, Jr.",25 w trzecim, a następnie naciśnięcie KONWERTUJ z separatorem-przecinkiem, pierwszym wierszem jako kluczami i włączoną koercją typów, daje [{"name":"Alice","age":30},{"name":"Bob, Jr.","age":25}] — osadzony przecinek w "Bob, Jr." pozostaje w jednym polu, a wieki stają się prawdziwymi liczbami JSON.
Czy ten konwerter CSV do JSON działa w całości w mojej przeglądarce?
Tak. Każde parsowanie i transformacja działają lokalnie jako JavaScript w karcie Twojej przeglądarki. Narzędzie w ogóle nie wywołuje fetch, XMLHttpRequest ani navigator.sendBeacon — Twój ładunek CSV nigdy nie trafia na nasze serwery, do zewnętrznego konwertera ani do żadnego potoku analityki. Narzędzie działa też offline, gdy strona już się wczytała, ponieważ jest to statyczna paczka HTML/CSS/JS bez zależności od zewnętrznego API.
Jaki jest maksymalny rozmiar wejścia, który ten konwerter obsłuży?
Konwerter buforuje całe wejście w pamięci i działa synchronicznie w głównym wątku, więc praktyczne ograniczenia zależą od Twojego urządzenia. Wejścia do około 10 MB CSV (mniej więcej 100 000 typowych wierszy) konwertują się bez zauważalnej pauzy na nowoczesnym laptopie. Poza tym interfejs może się zacinać, gdy parser pracuje. Konwersja strumieniowa z użyciem Web Worker i parsera z chunkami to planowane rozszerzenie — na razie bardzo duże zbiory dziel przed wklejeniem.
Jak parser CSV do JSON radzi sobie z przecinkami w cudzysłowach i osadzonymi znakami nowej linii?
Parser to automat stanów znak po znaku z trzema stanami (FIELD_START, IN_UNQUOTED_FIELD, IN_QUOTED_FIELD) — nie naiwne split(','). Pole opakowane w podwójne cudzysłowy może zawierać separator, CR, LF lub literalne podwójne cudzysłowy poprzedzone ucieczką "", bez przerywania granic pola. Dlatego "Bob, Jr.",25 parsuje się do dwóch pól, a nie do trzech, a wielowierszowy opis w cudzysłowach rozciągnięty na wiele wierszy parsuje się do jednej komórki.
Jak są typowane liczby, wartości logiczne i puste komórki w wynikowym JSON?
Typowanie jest kontrolowane przez przełącznik Koercja typów. Z koercją włączoną (domyślna) komórka wyglądająca jak liczba staje się liczbą JSON, true/false stają się wartościami logicznymi, a literał null staje się null JSON; wszystko inne pozostaje ciągiem znaków. Z koercją wyłączoną każda wartość jest zachowywana jako ciąg znaków bez względu na treść — przydatne gdy wiodące zera, numery telefonów lub kody identyfikatorów muszą pozostać nienaruszone. Brakujące komórki końcowe w krótkim wierszu są emitowane jako puste ciągi, aby każdy obiekt miał pełny zestaw kluczy.
Które separatory obsługuje strona CSV?
Obsługiwane są cztery jawne separatory: przecinek (,, domyślny dla RFC 4180), średnik (;, częsty w lokalach europejskich), tabulator (\t, dialekt TSV) oraz pionowa kreska (|). Można też wybrać Wykryj automatycznie, które liczy wystąpienia każdego kandydata w pierwszych 4 KB wejścia poza obszarami w cudzysłowach i wybiera najczęstszy, dający spójną liczbę kolumn w pierwszych pięciu wierszach.
Ten konwerter CSV do JSON parsuje prawdziwym automatem stanów i emituje czysty, gotowy do użycia JSON, który wkleisz wprost do wywołania API, skryptu albo code review — bez wysyłania ani jednego bajta.