§

Wklej tablicę JSON, którą chcesz przekonwertować do CSV.

Separator
Kolumny nagłówka
Pierwszy wiersz jest nagłówkiem
Zagnieżdżone obiekty
Koercja typów
§

Output

csv

Konwersja JSON do CSV jest chlebem powszednim polskich zespołów danych: portal dane.gov.pl publikuje dane GUS-u dostępne przez API w JSON, które potoki przekształcają w CSV do ładowania do Snowflake, BigQuery czy Synapse; NBP udostępnia kursy walut w JSON, a Ministerstwo Finansów ma dane budżetowe wymagające konwersji do CSV dla analityków pracujących w arkuszach. Zespoły fintech wokół KSeF i PSD2 stale eksportują zestawienia transakcji z JSON (format API) do CSV (akceptowany przez audytorów i KNF). Konwerter wykonuje spłaszczanie lokalnie, więc dane RODO ani poufne arkusze nigdy nie opuszczają karty przeglądarki.

Czym jest konwersja JSON do CSV?

JSON (JavaScript Object Notation, RFC 8259) to tekstowy format danych o strukturze drzewa; CSV (Comma-Separated Values, RFC 4180) to płaski, tabelaryczny format tekstowy. Konwersja JSON do CSV spłaszcza to drzewo w wiersze i kolumny, dzięki czemu zestaw danych, który zaczął jako odpowiedź API, otwiera się czysto w arkuszu kalkulacyjnym bez przepisywania ani jednego wiersza.

Jak działa konwersja JSON do CSV?

Każda konwersja działa lokalnie w Twojej przeglądarce. Najważniejsze kroki to:

  1. JSON.parse waliduje wejście i potwierdza, że jest to tablica rekordów najwyższego poziomu. Wyraźny błąd pojawia się, gdy nawiasy, przecinki lub klucze w cudzysłowach nie zgadzają się.
  2. Generator wyprowadza kolumny nagłówka z Twoich rekordów: albo suma wszystkich kluczy, albo tylko klucze z pierwszego rekordu — zależnie od przełącznika.
  3. Zagnieżdżone obiekty są spłaszczane do kluczy z kropkami (user.id, user.city) lub serializowane jako jedna komórka JSON — do wyboru. Tablice wewnątrz obiektów są serializowane do JSON w obu przypadkach.
  4. Każda komórka jest escapowana zgodnie z RFC 4180: każda wartość zawierająca separator, cudzysłów podwójny lub znak nowej linii jest opakowana w cudzysłowy, a wewnętrzne cudzysłowy są podwajane. Wiersze są łączone terminatorami \r\n.
  5. CSV trafia do pola tekstowego tylko do odczytu, a link do pobrania buduje obiekt Blob z typem MIME text/csv;charset=utf-8, abyś mógł zapisać plik jednym kliknięciem.

Dlaczego konwertować JSON do CSV tym narzędziem?

  • Prywatność: każde parsowanie, spłaszczanie i zapisywanie odbywa się w Twojej przeglądarce. Dane nigdy nie trafiają na nasze serwery.
  • Poprawność: generator podąża za RFC 4180. Wartość taka jak Bob, Jr. staje się "Bob, Jr." — jedna komórka w cudzysłowach, nie dwie kolumny — a osadzone znaki nowej linii lub cudzysłowy przeżywają konwersję nienaruszone.
  • Gotowe do arkusza kalkulacyjnego: wynik wkleja się bezpośrednio do Excela lub Arkuszy Google, z kolumnami nagłówka już wyprowadzonymi z Twoich kluczy, bez ręcznego porządkowania zanim dane będą użyteczne.
  • Elastyczność: przełączaj między spłaszczeniem a serializacją zagnieżdżonych obiektów, wybieraj dowolny separator dla niestandardowych dialektów CSV i decyduj, czy nagłówki pochodzą ze wszystkich kluczy, czy tylko z pierwszego rekordu.

Jakie są typowe zastosowania konwersji JSON do CSV?

Spłaszczanie JSON do CSV pojawia się w wielu obszarach pracy z danymi i narzędziami:

  • Eksport danych: zamiana odpowiedzi API na plik CSV, który dział finansowy, operacyjny lub produktowy może otworzyć w Excelu lub Arkuszach Google bez pisania kodu.
  • Raportowanie: wrzucenie wyniku zapytania JSON do arkusza kalkulacyjnego dla tabeli przestawnej, wykresu lub kolumny formuł. Tego rodzaju praca jest bolesna na surowym JSON.
  • Import do arkusza: spłaszczenie zagnieżdżonej konfiguracji JSON (ustawienia, flagi funkcji, warianty A/B) do CSV, aby nietechniczni recenzenci mogli edytować ją komórka po komórce.

Jak wygląda przykład konwersji JSON do CSV?

Wklej [{"name":"Alice","age":30},{"name":"Bob, Jr.","age":25}], zostaw separator jako przecinek i naciśnij KONWERTUJ. Otrzymasz trzy linie: wiersz nagłówka name,age, wiersz danych Alice,30 oraz wiersz "Bob, Jr.",25. Osadzony przecinek to dokładnie to, o co potyka się naiwny join — tutaj wymusza cudzysłowy zgodne z RFC 4180, dzięki czemu komórka pozostaje nienaruszona.

Czy ten konwerter JSON do CSV działa w całości w mojej przeglądarce?

Tak. Każde parsowanie, spłaszczanie i zapisywanie działają lokalnie jako JavaScript w karcie Twojej przeglądarki. Narzędzie w ogóle nie wywołuje fetch, XMLHttpRequest ani navigator.sendBeacon — Twoje ładunki JSON nigdy nie trafiają 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. Tablice JSON do około 10 MB (mniej więcej 100 000 typowych rekordów) konwertują się bez zauważalnej pauzy na nowoczesnym laptopie. Poza tym interfejs może się zacinać, gdy generator pracuje. Konwersja strumieniowa z użyciem Web Worker i generatora z chunkami to planowane rozszerzenie — na razie bardzo duże zbiory dziel przed wklejeniem.

Jak generator radzi sobie z wartościami zawierającymi przecinki, cudzysłowy lub znaki nowej linii?

Zgodnie z RFC 4180. Każda wartość zawierająca aktywny separator, cudzysłów podwójny, CR lub LF jest opakowana w cudzysłowy podwójne, a wewnętrzne cudzysłowy są podwajane. Dlatego nazwa taka jak Bob, Jr. staje się pojedynczą komórką "Bob, Jr." zamiast przelewać się do dwóch kolumn, a wielowierszowy opis pozostaje w jednej komórce zamiast łamać wiersz. To jest ta część, w której naiwny join(',') się myli.

Co dzieje się z zagnieżdżonymi obiektami JSON przy konwersji do CSV?

Zagnieżdżone obiekty są obsługiwane zgodnie z przełącznikiem Zagnieżdżone obiekty. W trybie Spłaszcz (domyślnym) klucze są łączone kropkami — {"user":{"id":1,"city":"Paris"}} staje się kolumnami user.id i user.city. W trybie Serializuj zagnieżdżony obiekt jest serializowany jako pojedyncza wartość komórki JSON z zachowaną ucieczką cudzysłowów RFC 4180, zachowując strukturę dla pełnego obiegu. Tablice wewnątrz obiektów są serializowane do JSON w obu trybach.

Których separatorów może używać wynik CSV?

Cztery: przecinek (,, domyślny dla RFC 4180), średnik (;, częsty w lokalach europejskich), tabulator (\t, dialekt TSV) oraz pionowa kreska (|). Wybierz ten, którego oczekuje Twoje narzędzie docelowe. Generator escapuje każdą komórkę zawierającą wybrany separator, więc wybór nigdy nie uszkodzi wartości.

Ten konwerter JSON do CSV spłaszcza Twoją tablicę i emituje wyjście zgodne z RFC 4180, które wkleisz wprost do arkusza, raportu albo code review — bez wysyłania ani jednego bajta. Potrzebujesz odwrotnego kierunku? Konwerter CSV do JSON parsuje w drugą stronę.