Konwerter CSV na JSON
CSV z Excela lub pliku na tablicę obiektów, JSON Lines i 3 inne kształty, z wykrywaniem liczb, true/false i null.
-
1Wprowadź dane
Wpisz treść, wklej tekst lub załaduj plik z dysku. -
2Kliknij przycisk
Narzędzie natychmiast przetworzy Twoje dane w przeglądarce. -
3Pobierz wynik
Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
return "Wynik gotowy w 0.1s";
}
Gotowy JSON
Tablica obiektów: każdy wiersz CSV to osobny obiekt, klucze pochodzą z nagłówka. Separator: przecinek.
Kolumny
Separator
Rozmiar CSV
Rozmiar JSON
Puste pola
Zamienione na null
Typy kolumn
Każda kolumna ma jeden typ
JSON
| Klucz | Wykryty typ | Puste | Przykład wartości |
|---|---|---|---|
| id | liczba całkowita | 0 | 1 |
| name | tekst | 0 | Anna |
| tekst | 0 | [email protected] | |
| active | logiczny (true/false) | 0 | true |
Ściąga: jak wartości z CSV trafiają do JSON
| Wartość w CSV | Wynik w JSON | Dlaczego |
|---|---|---|
| 42, -7 | 42, -7 | liczba całkowita (do 15 cyfr) |
| 39,90 albo 39.90 | 39.9 | przecinek dziesiętny zamieniamy na kropkę |
| 007 | "007" | zero na początku: zostaje tekstem (kody, numery) |
| 12345678901234567 | "12345678901234567" | ponad 15 cyfr: tekst, żeby nie stracić dokładności |
| true, FALSE | true, false | wartość logiczna, wielkość liter bez znaczenia |
| puste, null, nil, n/a | null | brak wartości |
| 2026-10-20 | "2026-10-20" | tekst; w tabeli kolumn oznaczony jako data |
| tak, nie | "tak", "nie" | polskie słowa zostają tekstem |
CSV z polskiego Excela
Polski Excel zapisuje CSV ze średnikiem, bo przecinek jest u nas separatorem dziesiętnym. Tryb „Wykryj automatycznie” sprawdza pierwszą linię i wybiera znak, który dzieli ją na najwięcej kolumn. Liczby typu 39,90 trafiają do JSON jako 39.9. Przy zapisie wybierz „CSV UTF-8”, żeby polskie znaki się nie zepsuły.
Cudzysłowy, przecinki i nowe linie
Wartość zawierającą separator, cudzysłów albo nową linię ujmij w cudzysłów: "Jan, Kowalski". Cudzysłów wewnątrz wartości zapisz podwójnie: "Monitor 24"" Full HD" (reguła RFC 4180). Gdy liczba pól nie zgadza się z pierwszym wierszem, narzędzie poda numer linii; zwykle winny jest brakujący cudzysłów.
Który kształt JSON wybrać
Tablica obiektów to standard dla API i JavaScriptu. Obiekt kolumn pasuje do wykresów przyjmujących serie wartości. Tablica tablic jest najkrótsza. Obiekt według pierwszej kolumny daje dostęp po identyfikatorze, np. dane["17"], i wymaga unikalnych wartości. JSON Lines to jeden obiekt w linii, wygodny przy dużych plikach i imporcie wsadowym.
Zagnieżdżenia z kropek
Po zaznaczeniu opcji zagnieżdżeń nagłówki user.name i user.city tworzą jeden obiekt { "user": { "name": "Anna", "city": "Warszawa" } }. Działa na dowolną głębokość, a nagłówki bez kropki zostają płaskie. Powtórzone nagłówki dostają końcówkę _2, _3, więc żadna kolumna nie nadpisze innej.
Oceń to narzędzie:
Powiązane narzędzia
Inne narzędzia, które mogą Ci się przydaćKonwerter CSV na JSON
Konwerter CSV na JSON zamienia tekst z pliku .csv, Excela lub Arkuszy Google na JSON (ang. CSV to JSON): domyślnie na tablicę obiektów, w której każdy wiersz to osobny obiekt, a klucze pochodzą z nagłówka. Liczby, wartości true/false i puste pola dostają właściwe typy JSON, więc wynik nadaje się od razu do API, JavaScriptu albo bazy dokumentowej.
Obsługiwane opcje
| Opcja | Działanie |
|---|---|
| Separator | wykrywany automatycznie albo wybrany ręcznie: przecinek, średnik, tabulator, pionowa kreska (|) |
| Kształt wyniku | tablica obiektów, obiekt kolumn, tablica tablic, obiekt według pierwszej kolumny, JSON Lines (NDJSON) |
| Pierwszy wiersz to nagłówek | wartości pierwszego wiersza stają się kluczami; bez nagłówka klucze to column_1, column_2 itd. |
| Wykrywaj typy | liczby, true/false i null jako typy JSON; po wyłączeniu każda wartość zostaje tekstem |
| Formatuj JSON | wcięcie 2 spacje, 4 spacje albo tabulator; po wyłączeniu cały JSON w jednej linii |
| Kropki w nagłówku tworzą zagnieżdżenia | kolumny user.name i user.city trafiają do jednego obiektu user |
Wynik można skopiować albo pobrać jako plik dane.json (dla JSON Lines: dane.jsonl). Pod wynikiem jest tabela kolumn z wykrytym typem, liczbą pustych pól i przykładową wartością, a kafelki pokazują liczbę wierszy, kolumn, wybrany separator i rozmiar CSV oraz JSON w bajtach. Limit wejścia to 2 MB i 20 000 wierszy, dane muszą być w UTF-8.
Przykład
id,name,active
1,Anna,true
2,Jan,false
Daje (przy wyłączonym formatowaniu):
[{"id":1,"name":"Anna","active":true},{"id":2,"name":"Jan","active":false}]
Te same dane w pięciu kształtach JSON
| Kształt | Wynik | Kiedy go użyć |
|---|---|---|
| Tablica obiektów | [{"id":1,"name":"Anna","active":true}, …] | API, JavaScript, MongoDB, większość bibliotek |
| Obiekt kolumn | {"id":[1,2],"name":["Anna","Jan"],"active":[true,false]} | wykresy i biblioteki, które przyjmują serie wartości |
| Tablica tablic | [[1,"Anna",true],[2,"Jan",false]] | najkrótszy zapis, gdy odbiorca zna kolejność kolumn |
| Obiekt wg pierwszej kolumny | {"1":{"id":1,"name":"Anna","active":true}, …} | dostęp po identyfikatorze; wartości w pierwszej kolumnie muszą być niepuste i unikalne |
| JSON Lines (NDJSON) | {"id":1,"name":"Anna","active":true}, każdy obiekt w osobnej linii | duże pliki, import wsadowy, przetwarzanie linia po linii |
Jak działa konwerter CSV na JSON
Najpierw narzędzie ustala separator. W trybie „Wykryj automatycznie” sprawdza pierwszą linię i wybiera znak (przecinek, średnik, tabulator lub |), który dzieli ją na najwięcej kolumn; gdy żaden nie daje więcej niż jednej kolumny, zostaje przecinek. Znak BOM, który Excel dopisuje na początku pliku „CSV UTF-8”, jest usuwany, więc nie psuje nazwy pierwszej kolumny.
Potem tekst jest dzielony na rekordy zgodnie z RFC 4180: wartość w cudzysłowie może zawierać separator i znak nowej linii, a cudzysłów wewnątrz wartości zapisuje się podwójnie. Puste linie są pomijane. Jeśli któryś wiersz ma inną liczbę pól niż pierwszy, konwersja się zatrzymuje, a komunikat podaje numery linii (do pięciu) i liczbę pól w każdej z nich. Niezamknięty cudzysłów jest zgłaszany osobno, z numerem linii, w której zaczyna się wadliwy rekord.
Gdy nagłówek jest włączony, pierwszy wiersz nie trafia do danych, tylko daje nazwy kluczy. Pusta komórka nagłówka dostaje nazwę column_N, a powtórzona nazwa końcówkę _2, _3, więc żadna kolumna nie nadpisze innej. Polskie litery i ukośniki zostają w JSON w czytelnej postaci, bez sekwencji ucieczki.
Wykrywanie typów działa dla każdej komórki osobno. Liczba całkowita (do 15 cyfr, bez zera na początku) staje się liczbą JSON, ułamek z kropką albo przecinkiem, np. 39,90, liczbą z kropką (39.9), a true i false w dowolnej wielkości liter typem logicznym. Puste pole oraz zapisy null, nil i n/a dają null. Wszystko inne, w tym 007, 1 000, daty i słowa „tak” czy „nie”, zostaje tekstem.
Przykład krok po kroku
- Wklejamy CSV z nagłówkiem id,name,active i dwoma wierszami danych: 1,Anna,true oraz 2,Jan,false.
- Automatyczne wykrywanie sprawdza pierwszą linię: przecinek dzieli ją na 3 pola, a średnik, tabulator i pionowa kreska na 1, więc wybrany zostaje przecinek.
- Podział daje 3 rekordy po 3 pola. Liczba pól jest wszędzie taka sama, więc nie pojawia się błąd niespójnych kolumn.
- Nagłówek jest włączony, więc id, name i active stają się kluczami. Gdyby był wyłączony, klucze nazywałyby się column_1, column_2 i column_3, a wiersz id,name,active trafiłby do wyniku jako pierwszy obiekt z samymi tekstami.
- Wykrywanie typów rozpoznaje 1 i 2 jako liczby całkowite, true i false jako wartości logiczne, a Anna i Jan jako tekst. Tabela kolumn pod wynikiem pokazuje: id – liczba całkowita, name – tekst, active – logiczny (true/false), bez pustych pól.
- Wynikiem jest tablica z 2 obiektami, czyli tyle, ile wierszy danych. Pierwszy obiekt ma id równe 1, name równe Anna i active równe true, drugi id 2, name Jan i active false.
Tabela referencyjna zachowań
| Sytuacja wejściowa | Działanie konwertera | Efekt w JSON |
|---|---|---|
| Nagłówek włączony | Pierwszy wiersz staje się nazwami kluczy | Obiekty mają klucze id, name, active |
| Nagłówek wyłączony | Kolumny dostają nazwy column_1, column_2, column_3 | Klucze są generowane automatycznie |
| Powtórzony nagłówek | Druga kolumna name dostaje nazwę name_2 | Obie kolumny zostają w wyniku |
| Liczba 42 lub 39,90 | Pole jest rozpoznawane jako liczba | 42 i 39.9, bez cudzysłowu |
| Zero na początku (007, 01234) | Pole zostaje tekstem | "007", wiodące zero nie znika |
| Wartość true lub FALSE | Pole jest rozpoznawane jako typ logiczny | true albo false |
| Puste pole | Przy wykrywaniu typów: null; bez niego: pusty tekst | null albo "" |
| Przecinek w cudzysłowie | Podział uwzględnia granice pola | Wartość zostaje w jednym polu, np. Jan, Kowalski |
| Separator średnik | Podział odbywa się po średniku | Przecinki mogą zostać w wartościach |
| Separator tab | Podział odbywa się po znaku tabulacji | Dobre dla danych skopiowanych z arkusza |
| Liczby i tekst w jednej kolumnie | Kolumna dostaje typ „mieszany” i ostrzeżenie | Wartości mają różne typy |
Praktyczne wskazówki użycia
- Sprawdź kafelek „Separator” po konwersji. Automatyczne wykrywanie patrzy tylko na pierwszą linię, więc jeśli nagłówek ma jedną kolumnę albo zawiera nietypowe znaki, wybierz separator ręcznie. Zły separator zwykle kończy się komunikatem o niespójnej liczbie kolumn.
- Nie mieszaj nagłówka z danymi. Włącz opcję nagłówka tylko wtedy, gdy pierwszy wiersz naprawdę zawiera nazwy kolumn. W razie wątpliwości porównaj liczbę wierszy wejściowych z liczbą wierszy danych w wyniku.
- Identyfikatory, numery telefonów i NIP-y bez zera na początku zostaną rozpoznane jako liczby. Jeśli mają zostać tekstem, odznacz „Wykrywaj typy” – wtedy każda wartość trafi do JSON w cudzysłowie, a puste pola jako pusty tekst.
- Puste komórki przy wykrywaniu typów stają się null. Jeśli puste pole ma znaczyć zero albo pusty tekst, uzupełnij je przed konwersją, bo null i "" to w JSON dwie różne wartości.
- Do importu dużych zbiorów do baz i kolejek wybierz JSON Lines: każdą linię można przetworzyć osobno, bez wczytywania całej tablicy do pamięci.
Ograniczenia i źródła błędów
- Brak walidacji schematu. Narzędzie nie wie, jakie typy powinny być w kolumnach, i wnioskuje je z zapisu. Numer 600123456 stanie się liczbą, a data 2026-10-20 zostanie tekstem (w tabeli kolumn oznaczonym jako data).
- Zależność od poprawnego CSV. Wiersz z nadmiarowym separatorem albo brakującym cudzysłowem zatrzymuje konwersję. Komunikat wskazuje linię, ale poprawić dane trzeba samodzielnie.
- Zagnieżdżenia tylko z kropek. Nagłówki typu user.name budują obiekty na dowolną głębokość, ale konwerter nie zrobi z kilku wierszy tablicy (relacji jeden do wielu). Taką strukturę trzeba złożyć już w kodzie.
- Utrata formatowania. JSON nie przechowuje szerokości kolumn, kolorów, formuł ani formatów komórek. Liczy się wartość, a nie wygląd, więc nie ma znaczenia, czy liczba była zapisana jako waluta, procent czy zwykła wartość.
- Kodowanie i rozmiar. Plik w Windows-1250 zostanie odrzucony: zapisz go jako „CSV UTF-8”. Powyżej 2 MB lub 20 000 wierszy podziel dane na części.
Najczęstsze pytania
Jak obsługiwane są przecinki w wartościach?
Wartości objęte cudzysłowem są parsowane poprawnie, np. "Jan, Kowalski". Cudzysłów wewnątrz wartości zapisz podwójnie: "Monitor 24"" Full HD".
Jak zamienić plik Excel na JSON?
Zapisz arkusz jako „CSV UTF-8” i wklej zawartość albo skopiuj zaznaczone komórki – Excel rozdziela je wtedy tabulatorem. Polski Excel w pliku CSV używa średnika; w obu przypadkach separator zostanie wykryty automatycznie.
Czy przecinek dziesiętny jest zamieniany na kropkę?
Tak, przy włączonym wykrywaniu typów 39,90 trafia do JSON jako 39.9. Gdy separatorem pól jest przecinek, taką liczbę trzeba ująć w cudzysłów, inaczej rozbije się na dwie kolumny.
Jak traktowane są puste pola?
Przy włączonym wykrywaniu typów stają się wartością null, tak samo jak zapisy null, nil i n/a. Po wyłączeniu tej opcji zostają pustym tekstem.
Czym JSON Lines różni się od zwykłego JSON?
JSON Lines (NDJSON) to jeden obiekt JSON w każdej linii, bez nawiasów tablicy i przecinków między rekordami. Taki plik można czytać i dopisywać linia po linii, co ułatwia import do baz i narzędzi wsadowych.
Czy konwerter obsługuje duże pliki?
Do 2 MB tekstu i 20 000 wierszy na jedną konwersję. Większy zbiór podziel na części; tabela kolumn pokazuje pierwsze 50 kolumn, ale JSON zawiera wszystkie.