Konwersja JSON do CSV przekształca ustrukturyzowane dane z formatu JSON do wartości rozdzielanych przecinkami — tabelarycznego formatu obsługiwanego natywnie przez arkusze kalkulacyjne, bazy danych i narzędzia analityczne. JSON przechowuje dane jako zagnieżdżone obiekty i tablice bez stałego schematu. CSV przechowuje dane jako wiersze i kolumny z wierszem nagłówkowym definiującym nazwy pól. Konwersja to sposób, w jaki dane z API trafiają do arkuszy kalkulacyjnych i baz danych.
CSV (Comma-Separated Values) jest zdefiniowany przez RFC 4180. Każda linia to jeden rekord, a pola w wierszu są oddzielone znakiem separatora, najczęściej przecinkiem. Pola zawierające separator, cudzysłowy lub znaki końca wiersza muszą być ujęte w cudzysłów, a wewnętrzne cudzysłowy są escapowane przez ich podwojenie. To escapowanie jest głównym źródłem błędów przy ręcznym pisaniu konwertera JSON do CSV.
Konwersja jest prosta, gdy dane wejściowe to płaska tablica obiektów ze spójnymi kluczami. Każdy obiekt staje się jednym wierszem, a każdy unikalny klucz — nagłówkiem kolumny. Zagnieżdżone obiekty i tablice wymagają spłaszczenia, a niespójne klucze między obiektami wymagają strategii obsługi brakujących pól — zazwyczaj pozostawienia komórki pustej. Niezawodny konwerter obsługuje wszystkie te przypadki brzegowe automatycznie.
Dlaczego konwertować JSON do CSV?
API zwracają JSON, ale arkusze kalkulacyjne, bazy danych SQL i narzędzia BI oczekują danych tabelarycznych. Konwersja JSON do CSV pozwala przenosić dane między tymi systemami bez pisania własnych skryptów importu.
⚡
Natychmiastowa konwersja w przeglądarce
Wklej JSON i natychmiast pobierz plik. Bez przesyłania na serwer, bez limitów rozmiaru pliku narzucanych przez zewnętrzne API, bez oczekiwania w kolejce przetwarzania.
🔒
Przetwarzanie z zachowaniem prywatności
Twoje dane pozostają w przeglądarce. Konwersja działa wyłącznie w JavaScript na Twoim urządzeniu. Eksporty baz danych, rekordy użytkowników i dane finansowe nigdy nie opuszczają Twojego komputera.
🔀
Obsługa wielu separatorów
Wybierz spośród separatorów: przecinek, średnik, tabulator lub pipe. Używaj średników dla arkuszy w lokalizacjach europejskich, tabulatora dla plików TSV lub pipe dla importów do systemów legacy.
📋
Bez rejestracji
Otwórz stronę i konwertuj. Bez rejestracji, klucza API ani instalacji CLI. Działa na każdym urządzeniu z nowoczesną przeglądarką.
Przypadki użycia konwersji JSON do CSV
Eksport danych z API do arkuszy kalkulacyjnych
REST API zwracają JSON. Menedżerowie produktu i analitycy potrzebują tych danych w Excel lub Google Sheets. Przekonwertuj odpowiedź API do CSV i otwórz ją bezpośrednio w dowolnym arkuszu kalkulacyjnym.
Masowy import do bazy danych
PostgreSQL COPY, MySQL LOAD DATA i SQLite .import akceptują CSV. Przekonwertuj zbiór danych do formatu tabelarycznego, aby szybko załadować go masowo bez pisania własnego skryptu importu.
Prototypowanie potoków ETL
Potoki ETL często mają pośrednie wyniki, które trudno inspekcjonować jako surowy JSON. Przekonwertuj wyniki kroku do CSV i otwórz je w arkuszu kalkulacyjnym, aby zweryfikować transformacje przed podłączeniem pełnego potoku.
Przygotowanie danych testowych dla QA
Inżynierowie QA generują dane testowe jako JSON, ale wiele frameworków testowych i narzędzi do testowania opartego na danych akceptuje CSV jako sparametryzowane dane wejściowe do testów. Przekonwertuj dane testowe do CSV bez ręcznego reformatowania.
Analiza logów i raportowanie
Ustrukturyzowane logi JSON z aplikacji i usług chmurowych można przekonwertować do CSV i zaimportować do narzędzi BI, takich jak Tableau, Power BI lub Looker, w celu wizualizacji i raportowania.
Przetwarzanie danych akademickich
Studenci i badacze pracujący z otwartymi API danych otrzymują odpowiedzi JSON. Konwersja do CSV umożliwia analizę w R, pandas, SPSS lub Excel bez pisania kodu parsującego.
Zestawienie separatorów CSV
Znak separatora oddziela pola w każdym wierszu. Przecinek jest najczęstszy, ale inne separatory są standardem w określonych kontekstach. Wybór złego separatora powoduje scalanie lub błędny podział pól podczas otwierania pliku.
Separator
Znak
Rozszerzenie
Kiedy używać
Comma
,
.csv
Default for most spreadsheets and databases
Semicolon
;
.csv
Standard in locales where comma is a decimal separator (DE, FR, BR)
Tab
\t
.tsv
Avoids escaping when field values contain commas or semicolons
Pipe
|
.csv
Used in fixed-width legacy systems and some ETL pipelines
Obsługa zagnieżdżonego JSON w CSV
CSV to płaski format, który nie ma natywnego sposobu reprezentowania zagnieżdżonych obiektów ani tablic. Gdy JSON zawiera zagnieżdżone struktury, konwerter musi je spłaszczyć do kolumn. Istnieje kilka strategii, a właściwy wybór zależy od tego, jak CSV będzie konsumowany.
Spłaszczanie z notacją kropkową
Zagnieżdżone klucze są łączone kropkami: {"address": {"city": "Warszawa"}} staje się kolumną o nazwie address.city z wartością Warszawa. To najczęstsze podejście, dobrze działające z narzędziami obsługującymi zagnieżdżone odwołania do pól.
Kolumny z indeksami tablic
Tablice są rozwijane do ponumerowanych kolumn: {"tags": ["a", "b"]} staje się tags.0 = a, tags.1 = b. Zachowuje wszystkie wartości, ale tworzy wiele kolumn, gdy tablice są duże.
Fallback do ciągu JSON
Złożone zagnieżdżone wartości są serializowane jako ciągi JSON wewnątrz komórki CSV: komórka zawiera surowy tekst JSON. Zachowuje pełną strukturę, ale wymaga od konsumenta parsowania wartości komórki.
Pomijanie zagnieżdżonych pól
Niektóre konwertery całkowicie pomijają zagnieżdżone obiekty i tablice, zachowując tylko pola skalarne (string, number, boolean, null). Daje to czysty CSV, ale traci dane. Przydatne tylko wtedy, gdy wiadomo, że zagnieżdżone pola nie są potrzebne.
Przykłady kodu
Programowa konwersja JSON do CSV wymaga obsługi wyodrębniania nagłówków, cytowania pól i escapowania separatora. Większość języków ma wbudowaną lub standardową bibliotekę obsługującą zapis CSV.
# Using jq to convert JSON array to CSV
echo '[{"name":"Alice","age":30},{"name":"Bob","age":25}]' | \
jq -r '(.[0] | keys_unsorted) as $k | $k, (.[] | [.[$k[]]] ) | @csv'
# → "name","age"
# → "Alice",30
# → "Bob",25
# Using Miller (mlr) for streaming conversion
echo '[{"name":"Alice","age":30}]' | mlr --json --ocsv cat
# → name,age
# → Alice,30
Go
package main
import (
"encoding/csv"
"encoding/json"
"fmt"
"os"
)
func main() {
jsonStr := `[{"name":"Alice","age":30},{"name":"Bob","age":25}]`
var data []map[string]interface{}
json.Unmarshal([]byte(jsonStr), &data)
w := csv.NewWriter(os.Stdout)
// Write header
headers := []string{"name", "age"}
w.Write(headers)
// Write rows
for _, row := range data {
record := make([]string, len(headers))
for i, h := range headers {
record[i] = fmt.Sprintf("%v", row[h])
}
w.Write(record)
}
w.Flush()
// → name,age
// → Alice,30
// → Bob,25
}
Często zadawane pytania
Jakiej struktury JSON oczekuje ten konwerter?
Konwerter oczekuje tablicy obiektów JSON, jak [{"name":"Piotr"},{"name":"Anna"}]. Każdy obiekt w tablicy staje się jednym wierszem w wynikach, a klucze obiektów stają się nagłówkami kolumn. Pojedynczy obiekt JSON (nieujęty w tablicę) jest traktowany jako tabela jednoierszowa.
Jak obsługiwane są zagnieżdżone obiekty i tablice?
Zagnieżdżone wartości są spłaszczane z użyciem notacji kropkowej. Na przykład {"address":{"city":"Warszawa"}'} tworzy kolumnę o nazwie address.city. Tablice są rozwijane do indeksowanych kolumn (tags.0, tags.1). Zachowuje to dane przy jednoczesnym utrzymaniu płaskiego formatu wyjściowego.
Co się dzieje, gdy obiekty mają różne klucze?
Konwerter zbiera wszystkie unikalne klucze ze wszystkich obiektów w tablicy i używa ich jako nagłówków kolumn. Obiekty bez danego klucza otrzymują pustą komórkę dla tej kolumny. Żadne dane nie są tracone, a kolejność kolumn odpowiada kolejności, w jakiej klucze pojawiają się po raz pierwszy.
Czy mogę użyć średnika lub tabulatora zamiast przecinka?
Tak. Narzędzie obsługuje separatory: przecinek, średnik, tabulator i pipe. Używaj średników, gdy Twoje dane lub lokalizacja używa przecinków jako separatora dziesiętnego (typowe w niemieckich, francuskich i polskich arkuszach kalkulacyjnych). Używaj tabulatora dla plików TSV konsumowanych przez narzędzia Unix.
Czy konwersja jest bezstratna?
Dla płaskich tablic JSON ze spójnymi wartościami skalarnymi — tak. Plik wynikowy zawiera te same dane i może zostać przekonwertowany z powrotem do identycznego JSON. W przypadku zagnieżdżonych struktur spłaszczanie zmienia kształt danych. Wartości tablic serializowane do indeksowanych kolumn lub ciągów JSON można odtworzyć, ale taki round-trip wymaga znajomości oryginalnej struktury.
Jak duży plik JSON mogę przekonwertować?
Narzędzie działa w przeglądarce i przetwarza dane w pamięci — pliki do 10–20 MB są konwertowane bez problemów na nowoczesnych urządzeniach. W przypadku większych plików użyj narzędzia CLI, jak jq, Miller, lub skryptu Python z modułem csv, które przetwarzają dane strumieniowo.
Czy bezpiecznie jest wklejać wrażliwe dane do tego narzędzia?
Tak. Całe przetwarzanie odbywa się w przeglądarce przy użyciu JavaScript. Żadne dane nie są wysyłane na żaden serwer. Możesz to potwierdzić, otwierając narzędzia deweloperskie przeglądarki i sprawdzając kartę Sieć podczas konwersji.