Skip to content

Konwerter CSV na JSON

Konwertuj CSV na JSON w przeglądarce. RFC 4180, wnioskowanie typów, nagłówek, big-int safe. 100% prywatnie, bez wysyłki.

Bez śledzenia Działa w przeglądarce Bezpłatne
Preset
Opcje · , · auto · LF · header · no BOM · flatten
Separator
Nagłówek w 1. wierszu
Wnioskuj typy (liczby, logiczne, null)
0 znaków 0 linii
Wyjście JSON
0 wierszy · 0 kolumn
Zweryfikowano pod kątem zgodności z RFC 4180, poprawności Wnioskowania typów, zachowania precyzji dużych liczb całkowitych i zachowania automatycznych nazw przy braku nagłówka — Go Tools Engineering Team · May 9, 2026

Czym jest JSON i dlaczego konwertować z CSV?

JSON (JavaScript Object Notation) to uniwersalny format dla odpowiedzi API, plików konfiguracyjnych i wymiany danych strukturalnych — każdy nowoczesny język programowania, każda baza danych i każdy framework webowy ma natywne wsparcie JSON. CSV (Comma-Separated Values) z kolei to najstarszy i najszerzej obsługiwany format tabelaryczny — każdy arkusz kalkulacyjny, każdy eksport bazy danych i każde narzędzie analityczne potrafi go wyprodukować. Konwersja między nimi to jedno z najczęstszych zadań w inżynierii danych: otrzymujesz CSV z arkusza kalkulacyjnego, zrzutu bazy danych lub eksportu od strony trzeciej, a potrzebujesz JSON, by zasilić API, zhydratować frontend lub załadować do magazynu NoSQL. Narzędzie jest zbudowane dla tej ścieżki konwersji i obsługuje cztery scenariusze, które większość konwerterów online psuje.

Narzędzie ma cztery ważne cechy wyróżniające na tle typowych konwerterów CSV-na-JSON online:

**1. Parser RFC 4180 oparty na maszynie stanów.** CSV wygląda prosto, ale reguły cytowania są subtelne: pole ujęte w cudzysłowy podwójne może zawierać przecinki, osadzone znaki nowej linii i ekranowane podwójne cudzysłowy (podwojone, jak ""). Naiwne parsery dzielące po przecinku zawodzą na rzeczywistych danych — adresach z przecinkami, wieloliniowych polach tekstowych i wartościach w cudzysłowach zawierających cudzysłowy. Narzędzie implementuje właściwy parser oparty na maszynie stanów zgodnie z RFC 4180 (specyfikacja IETF dla CSV), poprawnie obsługując pola w cudzysłowach, osadzone separatory, osadzone zakończenia linii i ekranowane cudzysłowy w obu kierunkach. Wyjście pomyślnie przechodzi konwersję w obie strony przez moduł csv w Pythonie, PostgreSQL COPY, AWS S3 SELECT i każdy zgodny parser.

**2. Wnioskowanie typów z bezpieczeństwem dużych liczb całkowitych.** Z włączonym Wnioskuj typy ciągi numeryczne stają się liczbami, true/false stają się wartościami logicznymi, puste komórki stają się null. Ale potok wnioskowania ma dwie ważne osłony: ciągi z wiodącym zerem (007, 0123) są zachowywane jako ciągi, ponieważ wiodące zera wskazują identyfikatory — konwersja na liczbę cicho by je usunęła. A liczby całkowite powyżej 2^53 - 1 (9007199254740991) także są zachowywane jako ciągi, aby uniknąć utraty precyzji IEEE 754. Identyfikatory snowflake Twittera, ID Discorda, pola Long w MongoDB i resourceVersion K8s pozostają dokładne, zamiast być cicho zaokrąglane. Ciągi dat ISO są celowo zachowywane jako ciągi — JSON nie ma natywnego typu daty.

**3. Automatyczne nazwy nagłówka lub użyj pierwszego wiersza.** Z włączonym Nagłówek (domyślnie) pierwszy wiersz jest traktowany jako nazwy kolumn, a każdy kolejny wiersz staje się obiektem JSON o kluczach z tych nazw. Z wyłączonym Nagłówek parser nadaje kolumnom automatyczne nazwy col1, col2, col3 — przydatne dla surowych zrzutów danych bez wiersza nagłówka. Wiersz chipów Separator pokrywa cztery najczęstsze separatory: przecinek (domyślny RFC 4180), średnik (lokalizacje Excel-EU), tabulacja (TSV z narzędzi uniksowych i hurtowni danych) oraz pionowa kreska (pola z wieloma przecinkami). Wybierz chip i parsuj — bez ręcznej konfiguracji dla typowych rzeczywistych CSV.

**4. 100% prywatność w przeglądarce.** Twoje dane CSV — które często zawierają dane osobowe użytkowników, wewnętrzne eksporty baz danych, rekordy klientów i eksporty produkcyjne — nigdy nie opuszczają przeglądarki. Żadne dane nie są wysyłane na żaden serwer, brak rejestrowania, brak analityki rejestrującej dane wejściowe. Można to zweryfikować w zakładce Sieć przeglądarki. To jedyny bezpieczny sposób obsługi wrażliwych danych w narzędziu online. Zobacz odwrotny kierunek, klikając Zamień, lub użyj naszego towarzyszącego Konwertera JSON na CSV, gdy CSV jest celem. Musisz zwalidować JSON przed konsumpcją? Wypróbuj nasze formatowanie JSON.

Mocne strony JSON to precyzyjne typy, natywne zagnieżdżanie i ścisła specyfikacja, która parsuje się identycznie wszędzie — właściwy format wszędzie tam, gdzie maszyna konsumuje dane. Mocne strony CSV to uniwersalność i czytelność dla człowieka — właściwy format wszędzie tam, gdzie człowiek otwiera arkusz kalkulacyjny. Właściwe narzędzie zależy od odbiorcy: człowiek czytający arkusz → CSV, maszyna konsumująca API → JSON. Ten konwerter obsługuje pomost w obu kierunkach.

// Input CSV (comma + LF, header on, infer types on)
id,name,active,score
1,Alice,true,98.5
2,Bob,false,87
3,Carol,true,

// Output JSON
[
  { "id": 1, "name": "Alice", "active": true, "score": 98.5 },
  { "id": 2, "name": "Bob", "active": false, "score": 87 },
  { "id": 3, "name": "Carol", "active": true, "score": null }
]

// Same input with Header off (no first-row keys)
1,Alice,true,98.5
2,Bob,false,87

// Becomes
[
  { "col1": 1, "col2": "Alice", "col3": true, "col4": 98.5 },
  { "col1": 2, "col2": "Bob", "col3": false, "col4": 87 }
]

Kluczowe funkcje

Parser RFC 4180 oparty na maszynie stanów

Ścisły parser oparty na maszynie stanów zgodny ze specyfikacją CSV IETF: prawidłowa obsługa pól w cudzysłowach, osadzonych separatorów, osadzonych CR/LF i ekranowanych podwójnych cudzysłowów (podwojonych). Wyjście pomyślnie przechodzi konwersję w obie strony przez csv w Pythonie, PostgreSQL COPY i AWS S3 SELECT.

Wnioskowanie typów z bezpieczeństwem dużych liczb całkowitych

Włączone Wnioskuj typy konwertuje ciągi numeryczne na liczby, true/false na wartości logiczne, puste komórki na null. Liczby całkowite powyżej 2^53 - 1 pozostają ciągami, aby uniknąć utraty precyzji IEEE 754; ciągi z wiodącym zerem (007, 0123) pozostają ciągami, aby zachować semantykę identyfikatora.

Nagłówek wł./wył. z automatycznymi nazwami

Włączony Nagłówek (domyślnie) używa pierwszego wiersza jako kluczy JSON. Wyłączony Nagłówek nadaje kolumnom automatyczne nazwy col1, col2, col3 w kolejności — przydatne dla surowych zrzutów danych i CSV generowanych maszynowo bez wiersza nagłówka. Automatyczne nazwy są deterministyczne i przyjazne potokom.

Separatory: przecinek, średnik, tabulacja, pionowa kreska

Chipy Separator jednym kliknięciem dla czterech najczęstszych separatorów: `,` (domyślny RFC 4180), `;` (lokalizacje Excel-EU), `\t` (TSV z narzędzi uniksowych, BigQuery, Snowflake) i `|` (pola swobodnego tekstu z dużą liczbą przecinków). Parser przełącza tryby natychmiast — bez konieczności wcześniejszej konwersji plików.

Wykrywanie dużych liczb całkowitych

Liczby całkowite powyżej 2^53 są wykrywane podczas parsowania i zachowywane jako ciągi w JSON — identyfikatory snowflake Twittera, ID Discorda, pola Long w MongoDB i resourceVersion K8s pozostają dokładne, zamiast być cicho zaokrąglane przez typ Number IEEE 754 w JavaScript.

Dwukierunkowość z Zamień

Jeden przycisk Zamień kierunek odwraca konwersję w miejscu: wejście staje się JSON, wyjście staje się CSV, a bieżący tekst zostaje zachowany. Wykonaj konwersję w obie strony, aby zweryfikować bezstratność, zanim trafi do potoku.

Przykłady

Eksport z arkusza kalkulacyjnego z nagłówkiem

id,name,email,role
1,Alice,alice@example.com,admin
2,Bob,bob@example.com,editor
3,Carol,carol@example.com,viewer
4,Dan,dan@example.com,viewer

Standardowy CSV z arkusza kalkulacyjnego. Z włączonym nagłówkiem i włączonym Wnioskuj typy otrzymujesz przejrzysty typowany JSON: liczby całkowite pozostają liczbami całkowitymi, a wartości logiczne / null są wykrywane.

Eksport dziennika rozdzielany tabulacją (TSV)

ts	event	user	duration
2026-05-09T10:00:00Z	signup	alice	142
2026-05-09T10:01:00Z	login	alice	87
2026-05-09T10:02:00Z	checkout	alice	312
2026-05-09T10:03:00Z	logout	alice	44

Wybierz `\t` (Tabulacja) jako separator. Domyślnie włączony Nagłówek automatycznie używa pierwszego wiersza jako kluczy.

CSV Excel-EU (separator średnika, CRLF)

id;name;price
1;Alice;1234,56
2;Bob;9876,54
3;Carol;42,00

Excel w lokalizacjach DE/FR/IT/ES emituje separator `;`, ponieważ przecinek jest separatorem dziesiętnym. Wybierz `;` z chipa Separator — parser zajmie się resztą.

Osadzone przecinki i ekranowane cudzysłowy

name,role,note
"Smith, Jr.",admin,"He said ""hi"""
"Doe, Jane",editor,"Two
lines"

Standardowe cytowanie RFC 4180: pola w cudzysłowach mogą zawierać separatory i ekranowane cudzysłowy (podwojone). Parser jest maszyną stanów — nigdy nie dzieli wewnątrz cudzysłowów.

CSV z dużymi liczbami całkowitymi jako ID

id,event,user
9007199254740993,signup,alice
9007199254740994,login,bob
9007199254740995,checkout,carol

Duże liczby całkowite przekraczają bezpieczny zakres JavaScript (2^53 - 1). Z włączonym Wnioskuj typy parser wykrywa to i zachowuje wartość jako ciąg znaków, aby zachować precyzję — bez obcięcia.

CSV bez nagłówka

1,Alice,admin
2,Bob,editor
3,Carol,viewer
4,Dan,viewer

Wyłącz Nagłówek; kolumny otrzymują automatyczne nazwy `col1`, `col2`, `col3`. Użyj tego dla surowych zrzutów danych bez wiersza nagłówka.

Jak używać

  1. 1

    Wklej swój CSV

    Wprowadź lub wklej CSV do pola wejściowego powyżej. Narzędzie akceptuje dane rozdzielane przecinkiem, średnikiem, tabulacją i pionową kreską. Możesz też kliknąć «Wczytaj przykład», aby wypróbować próbkę, np. eksport z arkusza kalkulacyjnego, dziennik TSV lub CSV Excel-EU ze średnikami.

  2. 2

    Wybierz separator (lub Tabulacja)

    Kliknij `,` (domyślny), `;` (Excel-EU średnik), `\t` (TSV) lub `|` (Pipe), aby przełączyć separator jednym kliknięciem. Otwórz panel Opcje dla precyzyjnej kontroli: Nagłówek wł./wył. i Wnioskuj typy wł./wył. Wyłączony Nagłówek nadaje kolumnom automatyczne nazwy col1, col2, col3.

  3. 3

    Skopiuj lub pobierz JSON

    Kliknij Skopiuj, aby przenieść JSON do schowka, lub Pobierz, aby zapisać go jako plik .json gotowy do Twojego kodu, API lub potoku. Do konwersji w obie strony kliknij Zamień kierunek, aby przekonwertować JSON z powrotem na CSV w miejscu.

Typowe problemy przy konwersji

Osadzony przecinek bez cudzysłowów w źródle

Jeśli Twój CSV został zbudowany ręcznie naiwnym join(','), każde pole zawierające przecinek (Smith, Jr. lub 1,234.56) złamie granice kolumn — parser zobaczy dodatkowe kolumny tam, gdzie powinna być jedna. Rozwiązaniem jest ujęcie problematycznego pola w cudzysłowy podwójne zgodnie z RFC 4180. Narzędzie poprawnie obsługuje pola w cudzysłowach, ale źródłowy CSV musi używać prawidłowego cytowania.

✗ Niepoprawne
name,role
Smith, Jr.,admin
// Parser reads 3 columns: "Smith", " Jr.", "admin"
✓ Poprawne
name,role
"Smith, Jr.",admin
// Parser reads 2 columns: "Smith, Jr.", "admin"

Średniki Excel-EU parsowane jako przecinki

Europejskie wersje Excela (Niemcy, Francja, Hiszpania, Włochy itd.) emitują CSV rozdzielany średnikami, ponieważ przecinek jest zarezerwowany dla separatora dziesiętnego. Jeśli pozostawisz separator na `,` (domyślny), każdy wiersz zwija się do pojedynczej kolumny z osadzonymi średnikami. Wybierz chip Separator `;` — parser przełącza się w tryb średnika i produkuje poprawne kolumny.

✗ Niepoprawne
// Wrong delimiter (default comma) on Excel-EU file
id;name;price
1;Alice;1234,56
// Each row becomes one column: { col1: "1;Alice;1234,56" }
✓ Poprawne
// Correct: pick `;` Delimiter chip
id;name;price
1;Alice;1234,56
// Output: { id: 1, name: "Alice", price: "1234,56" }

Duże liczby całkowite jako ID tracą precyzję po JSON.parse

Identyfikatory snowflake Twittera, ID Discorda i inne 64-bitowe liczby całkowite przekraczają bezpieczny zakres JavaScript (2^53 - 1) i tracą precyzję, gdy JSON.parse() odczyta je jako liczby. Z włączonym Wnioskuj typy narzędzie wykrywa wartości powyżej bezpiecznej granicy i zachowuje je jako ciągi, zachowując dokładnie cyfry. Użyj BigInt("9007199254740993") w swoim kodzie, aby przekonwertować z powrotem na typ numeryczny.

✗ Niepoprawne
// Without big-int detection
{"id": 9007199254740993}
// JavaScript reads as 9007199254740992 (precision lost)
✓ Poprawne
// With Infer types on, big integers stay as strings
{"id": "9007199254740993"}
// Use BigInt(value) in code to preserve precision

Wiersz nagłówka zawiera spacje

Jeśli Twój nagłówek CSV to `id, name, email` (ze spacjami po przecinkach), klucze JSON stają się "id", " name", " email" — łącznie z wiodącą spacją. Parser zachowuje nagłówek dokładnie tak, jak podano, zgodnie z RFC 4180. Rozwiązaniem jest albo wyczyścić źródłowy CSV przed wklejeniem, albo zmienić nazwy kluczy w dalszej części potoku (jq 'with_entries(.key |= ltrimstr(" "))' lub JavaScript Object.fromEntries(Object.entries(o).map(([k,v]) => [k.trim(), v]))).

✗ Niepoprawne
id, name, email
1, Alice, alice@example.com
// Output keys: "id", " name", " email" (with leading spaces)
✓ Poprawne
id,name,email
1,Alice,alice@example.com
// Output keys: "id", "name", "email" (clean)

Niespójna długość wierszy

Gdy wiersze w CSV mają różne liczby kolumn (jedne z końcowymi przecinkami, inne bez), parser wypełnia brakujące komórki pustymi ciągami (lub null, gdy włączono Wnioskuj typy) i odrzuca dodatkowe ponad długość nagłówka. Pojawia się ostrzeżenie Notatki o schemacie, abyś wiedział, że wiersze zostały znormalizowane. Zwykle to w porządku, ale zweryfikuj wyjście, jeśli odbiorcy w dalszej części potoku oczekują ścisłego kształtu wiersza.

✗ Niepoprawne
name,role,note
Alice,admin
Bob,editor,first day
// Row 1 is short by one cell
✓ Poprawne
// Output (note empty/null cell in row 1)
[
  { "name": "Alice", "role": "admin", "note": null },
  { "name": "Bob", "role": "editor", "note": "first day" }
]

Ciągi dat nieoczekiwanie wymuszane na inny typ

Ciągi dat ISO 8601 (2026-05-09T10:00:00Z) są celowo zachowywane jako ciągi w wynikowym JSON — JSON nie ma natywnego typu daty, więc wymuszenie konwersji dałoby albo obiekt Date w JavaScript, który nie przeżywa serializacji, albo numeryczny epoch tracący informację o strefie czasowej. Tak zaprojektowano. Parsuj daty w punkcie użycia za pomocą new Date(value) lub wybranej biblioteki dat. Nie wyłączaj Wnioskuj typy tylko po to, by zachować daty — to także zachowałoby liczby jako ciągi.

✗ Niepoprawne
// Expecting a Date object in the output
ts,event
2026-05-09T10:00:00Z,signup
// Output ts is the string "2026-05-09T10:00:00Z", NOT a Date
✓ Poprawne
// Correct: parse at the point of use in your code
const rows = JSON.parse(output);
const when = new Date(rows[0].ts);
// when is now a Date object

Typowe zastosowania

Eksport z arkusza kalkulacyjnego do importu API
Wklej CSV wyeksportowany z Excela, Google Sheets lub Numbers i otrzymaj tablicę obiektów JSON gotową do POST do REST API, mutacji GraphQL lub punktu końcowego importu masowego. Najczęstszy przypadek użycia — analitycy produkują dane z arkusza, inżynierowie potrzebują typowanego JSON, by zasilić backend.
Eksport z Excela do narzędzi
Konwersja eksportów CSV z Excela (w tym plików Excel-EU rozdzielanych średnikiem z chipem `;`) na JSON do przetwarzania narzędziami JavaScript, skryptami jq lub dowolnym systemem czytającym JSON. Parser poprawnie obsługuje usuwanie BOM i zakończenia linii CRLF, dzięki czemu eksporty z Excela nie psują się w pierwszym wierszu.
Dziennik TSV do analityki
Dzienniki rozdzielane tabulacją z eksportów BigQuery, wyładunków Snowflake, potoków Vector lub narzędzi uniksowych (cut, awk) często docierają jako .tsv. Wybierz chip Separator Tabulacja i otrzymaj typowaną tablicę JSON gotową do analizy ad hoc, wczytania do dashboardu lub transformacji w etapie potoku.
Zrzut CSV z bazy danych do ETL
Konwersja wyjścia PostgreSQL COPY TO CSV, MySQL SELECT INTO OUTFILE lub dowolnego zrzutu CSV z bazy danych na JSON do wczytania do magazynu NoSQL, zasilenia potoku ETL w JavaScript lub wysłania do BigQuery jako JSON rozdzielany liniami. Wykrywanie dużych liczb całkowitych zachowuje numeryczne ID przekraczające bezpieczny zakres JavaScript.
Konsumpcja wyników testów Postman/Newman z CSV
Uruchomienia testów Postman eksportują raporty CSV pass/fail dla każdego żądania. Konwersja na JSON do programowej konsumpcji — zasilenie dashboardu statusu, potoku alertów lub agregatora wyników testów. Wiersze o mieszanym kształcie (testy zakończone niepowodzeniem mają dodatkową kolumnę error) są obsługiwane wypełnieniami pusty/null.
Mały CSV do szybkiej konfiguracji JSON
Masz mały CSV stałych — kody walut, nazwy krajów, SKU produktów — i potrzebujesz tablicy JSON do pliku konfiguracyjnego lub stałej w JavaScript? Wklej, skopiuj, wklej. Z włączonym Wnioskuj typy liczby i wartości logiczne są typowane poprawnie; z włączonym Nagłówek otrzymujesz tablicę obiektów z nazwanymi polami gotową do wrzucenia do pliku .json.

Szczegóły techniczne

Wewnętrzne działanie parsera RFC 4180 opartego na maszynie stanów
Parser to właściwa implementacja skończonej maszyny stanów zgodna z RFC 4180. Stany obejmują UnquotedField, QuotedField, AfterQuote, RowEnd i EndOfInput. Parser poprawnie obsługuje pola w cudzysłowach zawierające separator, osadzone CR/LF wewnątrz pól w cudzysłowach, ekranowane podwójne cudzysłowy (podwojone, jak "") i końcowe znaki nowej linii. Daje to wyjście, które bezstratnie przechodzi konwersję w obie strony przez moduł csv w Pythonie, PostgreSQL COPY, AWS S3 SELECT i każdy zgodny parser. Maszyna stanów jest świadoma separatora, więc przełączanie z `,` na `;` lub `\t` nie zmienia semantyki cytowania — tylko separator pól.
Algorytm wnioskowania typów
Z włączonym Wnioskuj typy każda komórka przechodzi przez uporządkowany potok wykrywania. Po pierwsze, pusta komórka staje się null w JSON. Po drugie, literały true i false stają się wartościami logicznymi JSON. Po trzecie, ciągi z wiodącym zerem (^0[0-9]+$) są zachowywane jako ciągi, aby zachować semantykę identyfikatora — konwersja na liczby cicho usunęłaby wiodące zera. Po czwarte, literały liczb całkowitych są testowane względem granicy bezpiecznej liczby całkowitej (-2^53+1 do 2^53-1); wartości spoza tego zakresu są zachowywane jako ciągi, aby uniknąć utraty precyzji IEEE 754. Po piąte, ciągi dat ISO 8601 są wykrywane wyrażeniem regularnym i celowo zachowywane jako ciągi — JSON nie ma natywnego typu daty. Wszystko, co przejdzie wszystkie pięć osłon, jest konwertowane przez Number() (numeryczne) lub zachowywane jako ciąg (wszystko inne).
Usuwanie BOM i obsługa kodowania
Wszystkie dane wejściowe są traktowane jako UTF-8. Opcjonalny BOM UTF-8 (0xEF 0xBB 0xBF) jest cicho usuwany z pierwszej komórki pierwszego wiersza, gdy jest obecny — zapobiega to dołączaniu bajtów BOM jako błąkającego się znaku na początku nazwy pierwszej kolumny (Excel na Windowsie powszechnie emituje BOM, łamiąc naiwne parsery). Inne kodowania (Windows-1252, ISO-8859-1) nie są wykrywane automatycznie; przeglądarkowe File API już zdekodowałoby bajty jako UTF-8, zanim tekst dotrze do tego narzędzia. Jeśli masz wejście inne niż UTF-8, najpierw przekonwertuj je za pomocą iconv lub opcji eksportu kodowania w swoim edytorze, zanim wkleisz.

Dobre praktyki

Wybierz separator jawnie dla danych nieprzecinkowych
Nie polegaj na automatycznym wykrywaniu. Jeśli Twój CSV używa średników (Excel-EU), tabulacji (TSV z BigQuery, Snowflake lub narzędzi uniksowych) lub pionowych kresek (pola z wieloma przecinkami), kliknij pasujący chip Separator przed wklejeniem. Parser jest świadomy separatora: przełączenie chipa natychmiast ponownie parsuje wejście. Pozwala to uniknąć najczęstszego trybu awarii konwersji CSV-na-JSON, gdzie każdy wiersz zwija się do jednej komórki, ponieważ parser użył złego separatora.
Pozostaw Wnioskuj typy włączone dla typowanego JSON
Z włączonym Wnioskuj typy (domyślnie) otrzymujesz typowany JSON: liczby jako liczby, wartości logiczne jako wartości logiczne, null tam, gdzie pojawiają się puste komórki. Tego chce większość odbiorców — API, frontendy, kod JavaScript. Wyłącz Wnioskuj typy tylko wtedy, gdy konkretnie potrzebujesz każdej komórki jako ciągu (odbiorcy o ścisłej kontroli typów w dalszej części potoku, potoki walidacji porównujące dokładne bajty źródłowe). Potok wykrywania ma osłony dla ciągów z wiodącym zerem, dużych liczb całkowitych i dat ISO, więc identyfikatory i daty pozostają bezpieczne nawet z włączonym wnioskowaniem.
Cytuj ID jako ciągi w źródłowym CSV
Jeśli Twój CSV jest generowany przez bazę danych lub potok, który kontrolujesz, emituj duże numeryczne ID (snowflake Twittera, ID Discorda, resourceVersion K8s) jako cytowane ciągi CSV ("9007199254740993"), aby przeszły przez Wnioskowanie typów czysto. Parser i tak zachowa je jako ciągi (wykrywanie big-int wyłapuje wartości powyżej 2^53 - 1), ale jawne cytowanie jest najbardziej solidnym kontraktem źródłowym i unika niejednoznaczności co do precyzji.
Wiersz nagłówka powinien być pierwszą linią
Włączony Nagłówek (domyślnie) automatycznie wykrywa pierwszy wiersz jako nazwy kolumn. Jeśli Twój CSV ma komentarze, puste linie lub metadane przed nagłówkiem, usuń je przed wklejeniem — parser nie pomija wiodących linii niedanych. Dla CSV bez nagłówka (surowe eksporty, zrzuty generowane maszynowo) wyłącz Nagłówek, a kolumny otrzymają automatyczne nazwy col1, col2, col3 w kolejności. Nie próbuj sfałszować nagłówka, dodając go na początku pliku bez nagłówka; albo wyłącz Nagłówek, albo popraw źródło.
Użyj trybu Stringify dla konwersji w obie strony CSV → JSON → CSV
Jeśli planujesz konwersję danych w obie strony (CSV → JSON → CSV), odwrotny kierunek (JSON → CSV) wymaga trybu Stringify, aby zagnieżdżone tablice lub obiekty przeżyły bezstratnie. Tryb Spłaszcz w odwrotnym kierunku emituje klucze z kropkami (customer.address.city), których nie da się idealnie odtworzyć przez parser CSV. Zobacz nasz Konwerter JSON na CSV jako pełne odniesienie odwrotnego kierunku i notatki dotyczące testowania konwersji w obie strony.

Najczęściej zadawane pytania

Co robi to narzędzie?
Konwertuje CSV na JSON bezpośrednio w przeglądarce z dwukierunkową obsługą: kliknij Zamień kierunek, aby przekonwertować JSON z powrotem na CSV w tym samym panelu. Wklej CSV do pola wejściowego, a narzędzie natychmiast utworzy wynikowy JSON — bez wysyłki, bez rejestracji, nic nie opuszcza Twojego urządzenia. Parser jest zgodny z RFC 4180, obsługuje chipy separatorów dla przecinka, średnika (Excel-EU), tabulacji (TSV) i pionowej kreski, a opcja Wnioskuj typy konwertuje ciągi numeryczne na liczby, true/false na wartości logiczne, a puste komórki na null. Narzędzie obsługuje też duże liczby całkowite jako ID, które inaczej traciłyby precyzję przez JSON.parse, osadzone przecinki w polach w cudzysłowach, ekranowane podwójne cudzysłowy (podwojone) oraz dane bez nagłówka z automatycznie nazwanymi kolumnami (col1, col2, col3).
Czy moje dane są gdziekolwiek wysyłane?
Nie. Cała konwersja odbywa się w 100% po stronie klienta w przeglądarce przy użyciu JavaScript. Dane CSV nigdy nie są przesyłane, nigdy nie są przechowywane na żadnym serwerze, nigdy nie są rejestrowane ani analizowane. Dzięki temu narzędzie jest bezpieczne dla eksportów z arkuszy kalkulacyjnych zawierających dane osobowe, wewnętrznych zrzutów CSV z baz danych, rekordów klientów i wszelkich danych wrażliwych. Można to zweryfikować w zakładce Sieć w przeglądarce — wklejenie CSV nie wyzwoli żadnych żądań sieciowych. Narzędzie nie używa plików cookie do danych wejściowych ani analityki firm trzecich, która rejestrowałaby wklejaną zawartość.
Jak działa Wnioskowanie typów?
Z włączonym Wnioskuj typy każda sparsowana komórka przechodzi przez krótki potok wykrywania, zanim trafi do JSON: ciągi numeryczne (1, 42, -3.14) stają się liczbami, true/false stają się wartościami logicznymi, puste ciągi i literał null stają się null w JSON, a wszystko inne pozostaje ciągiem znaków. Są dwie ważne osłony. Po pierwsze, ciągi z wiodącym zerem, takie jak 007 lub 0123, pozostają ciągami, choć wyglądają jak liczby — wiodące zera wskazują, że wartość jest identyfikatorem (kody pocztowe, kody telefoniczne, ID sekwencji), a konwersja na liczbę cicho usunęłaby zera. Po drugie, liczby całkowite powyżej 2^53 - 1 (9007199254740991) także pozostają ciągami, aby uniknąć utraty precyzji IEEE 754. Ciągi dat ISO (2026-05-09T10:00:00Z) są celowo zachowywane jako ciągi — JSON nie ma natywnego typu daty, więc wymuszenie konwersji dałoby obiekt Date w JavaScript, który nie przeżywa serializacji.
Dlaczego duże liczby całkowite są zachowywane jako ciągi?
Typ Number w JavaScript używa podwójnej precyzji IEEE 754 i może dokładnie reprezentować liczby całkowite tylko do 2^53 - 1 (9007199254740991). Rzeczywiste identyfikatory — snowflake Twittera, ID Discorda, pola Long w MongoDB, resourceVersion K8s — to 64-bitowe liczby całkowite przekraczające ten bezpieczny zakres. Gdyby parser wywołał Number() na tych wartościach, wynik zostałby cicho zaokrąglony (9007199254740993 staje się 9007199254740992). Potok Wnioskuj typy wykrywa wartości powyżej granicy bezpiecznej liczby całkowitej i zachowuje je jako ciągi, dzięki czemu cyfry pozostają nienaruszone. Pod wynikiem pojawia się baner z ostrzeżeniem wymieniający dotknięte pola. Aby precyzyjnie skonwertować z powrotem w kodzie, użyj BigInt("9007199254740993") na wartości ciągu z JSON.
Mój CSV używa średników — jak go sparsować?
Europejskie wersje Excela (Niemcy, Francja, Hiszpania, Włochy itd.) emitują CSV rozdzielany średnikami, ponieważ przecinek jest zarezerwowany dla separatora dziesiętnego. Kliknij chip `;` w wierszu Separator (lub otwórz pełny panel Opcje i wybierz `;`), a parser natychmiast przełączy się w tryb średnika. Wartości numeryczne z przecinkiem dziesiętnym (1234,56) wewnątrz takich plików są zachowywane jako ciągi przez Wnioskowanie typów, ponieważ europejski zapis dziesiętny zależy od lokalizacji — przekonwertuj je w kodzie, jeśli potrzebujesz wartości numerycznych. Parser nadal stosuje reguły cytowania RFC 4180 z nowym separatorem, więc pola w cudzysłowach zawierające średniki są obsługiwane poprawnie.
Czy obsługuje TSV (rozdzielany tabulacją)?
Tak. Kliknij chip Tabulacja w wierszu Separator, a parser dzieli na znakach tabulacji zamiast przecinkach. TSV to najczystszy format do udostępniania CSV między lokalizacjami, ponieważ tabulacja rzadko pojawia się wewnątrz pól tekstowych, eliminując większość przypadków brzegowych cytowania. Jest to domyślne wyjście narzędzi uniksowych (cut, awk), hurtowni danych (BigQuery, Snowflake) i jest dobrze obsługiwane przez Excel w każdej lokalizacji. Wklej zawartość pliku .tsv lub .tab bezpośrednio — reszta parsera (automatyczne nazwy nagłówka, wnioskowanie typów, wykrywanie dużych liczb całkowitych) działa identycznie.
Co jeśli mój CSV nie ma wiersza nagłówka?
Wyłącz Nagłówek w panelu Opcje. Parser potraktuje pierwszą linię jako dane zamiast nazw kolumn i automatycznie wygeneruje klucze: col1, col2, col3, … po jednym na kolumnę. Wynikowy JSON to tablica obiektów z tymi syntetycznymi kluczami. Jest to przydatne dla surowych eksportów z baz danych, które pomijają nagłówek, plików płaskich o stałym formacie i CSV generowanych maszynowo. Jeśli chcesz innych nazw kluczy, najpierw przekonwertuj z automatycznymi nazwami, a potem zmień nazwy kluczy w dalszej części potoku (jq, JavaScript map itd.). Narzędzie nie wnioskuje kluczy z heurystyk danych — Nagłówek wyłączony zawsze produkuje col1, col2, col3.
Czy obsługuje pola w cudzysłowach z osadzonymi przecinkami?
Tak. Parser jest właściwą maszyną stanów RFC 4180: gdy widzi otwierający podwójny cudzysłów, przełącza się w stan QuotedField i traktuje wszystko aż do następnego nieekranowanego podwójnego cudzysłowu jako jedno pole, łącznie z separatorami i osadzonymi zakończeniami linii (CR/LF). Ekranowane podwójne cudzysłowy (podwojone, jak "") są poprawnie zwijane do pojedynczego cudzysłowu. Oznacza to, że `"Smith, Jr."` jest parsowane jako jedno pole zawierające `Smith, Jr.`, a `"He said ""hi"""` jako `He said "hi"`. Naiwne parsery dzielące po przecinku zawodzą na takich rzeczywistych danych; to narzędzie nie.
Dlaczego moje daty są zachowywane jako ciągi?
Tak zaprojektowano. JSON nie ma natywnego typu daty — tylko ciągi, liczby, wartości logiczne, null, tablice i obiekty. Ciągi dat ISO 8601 (2026-05-09T10:00:00Z) są zachowywane dosłownie jako ciągi w wynikowym JSON, co jest poprawną, bezstratną reprezentacją. Gdyby parser wymusił konwersję na obiekty Date w JavaScript, serializacja wynikowego JSON dałaby inne wyjście (obiekt bez użytecznej reprezentacji do konwersji w obie strony lub numeryczny znacznik czasu). Zachowuj daty jako ciągi w JSON i parsuj je w punkcie użycia za pomocą new Date(value) lub wybranej biblioteki dat. Odpowiada to zachowaniu każdego głównego potoku JSON-z-CSV: Pandas, jq oraz moduły csv + json w Pythonie.
Co się dzieje, jeśli wiersze mają różne długości?
Wiersze o mieszanym kształcie (jedne z większą lub mniejszą liczbą kolumn niż nagłówek) są wypełniane do długości nagłówka. Dodatkowe komórki ponad liczbę nagłówka są odrzucane, a brakujące komórki są ustawiane na pusty ciąg (lub null, gdy włączono Wnioskuj typy i parser widzi pustą wartość). Pod wynikiem pojawia się ostrzeżenie Notatki o schemacie, abyś wiedział, że wiersze zostały znormalizowane. Zwykle to w porządku dla narzędzi w dalszej części potoku, które sumują mnogościowo klucze, ale zweryfikuj wyjście, jeśli odbiorca oczekuje ścisłej spójności kształtu wiersza. Najczęstszą przyczyną są końcowe przecinki w niektórych wierszach lub pola w cudzysłowach z osadzonymi zakończeniami linii błędnie liczone przez wcześniejsze eksportery.
Jak duży plik mogę wkleić?
Powyżej 100 000 znaków lub 2 000 wierszy konwersja na żywo automatycznie przełącza się na tryb ręczny: w banerze informacyjnym pojawia się przycisk Konwertuj i konwersja uruchamia się tylko po jego kliknięciu. Zapobiega to blokowaniu głównego wątku przeglądarki przy każdym naciśnięciu klawisza podczas intensywnego parsowania. Dla wyjścia powyżej 5 MB lub 50 000 wierszy narzędzie skraca podgląd JSON na ekranie do pierwszych 500 wierszy i pokazuje baner Pokazano pierwsze 500 z N wierszy — ale przycisk Pobierz nadal produkuje pełny plik ze wszystkimi wierszami. Twardy górny limit to 10 MB wejścia; powyżej narzędzie pokazuje błąd i prosi o zmniejszenie danych wejściowych.
Czy mogę wykonać konwersję w obie strony JSON → CSV → JSON?
Tak, gdy JSON jest płaski (bez zagnieżdżonych obiektów ani tablic). Dla danych zagnieżdżonych odwrotny kierunek (JSON → CSV) wymaga trybu Stringify, aby zachować tablice i obiekty jako JSON wewnątrz jednej komórki — co następnie przechodzi konwersję w obie strony bezstratnie przez ten konwerter CSV → JSON, gdy włączono Wnioskuj typy. Kliknij Zamień kierunek u góry panelu, aby przełączyć w tryb JSON-na-CSV i zweryfikować konwersję w obie strony. Tryb Spłaszcz w odwrotnym kierunku jest jednokierunkowy: emituje klucze z kropkami (customer.address.city), których nie da się idealnie odtworzyć z CSV. Zobacz nasz Konwerter JSON na CSV dla odwrotnego kierunku z pełną obsługą Stringify.

Powiązane narzędzia

Zobacz wszystkie narzędzia →