Od odpowiedzi API do arkusza kalkulacyjnego
JSON to natywny format webowych API, ale ludzie, którzy potrzebują danych, często żyją w arkuszach kalkulacyjnych. Typowe przypadki: lista zamówień pobrana z API sklepu, którą księgowa chce mieć w Excelu, rekordy użytkowników wyeksportowane z bazy NoSQL do szybkiej tabeli przestawnej, zdarzenia analityczne do filtrowania w Arkuszach Google albo partia rekordów do masowego importu w CRM, który przyjmuje wyłącznie pliki CSV. Plik CSV to także najłatwiejszy format do porównywania, sortowania i przeszukiwania grepem w wierszu poleceń.
Narzędzie przyjmuje tablicę obiektów i tworzy jeden wiersz na obiekt i jedną kolumnę na pole, z wierszem nagłówka na górze. Licznik pod polem wejściowym pokazuje, ile wierszy powstało — to szybki test zgodności z oczekiwaną liczbą rekordów.
Jak budowana jest tabela
Wiersze i kolumny wynikają z samych danych, bez potrzeby definiowania schematu:
- Kolumny to suma wszystkich kluczy, w kolejności ich pierwszego wystąpienia. Jeśli pierwszy rekord ma
idiname, a dziesiąty ma takżeemail, nagłówek kończy się naemail, a pierwsze dziewięć wierszy zostawia tę komórkę pustą. - Zagnieżdżone obiekty są spłaszczane za pomocą kropek, więc
{"customer": {"address": {"city": "Lyon"}}}daje kolumnęcustomer.address.city. Działa dowolna głębokość. - Pojedynczy obiekt zamiast tablicy jest traktowany jako tabela z jednym wierszem.
- Zwykłe wartości w tablicy, takie jak
[1, 2, 3]czy lista ciągów znaków, trafiają do jednej kolumny o nazwievalue. nullstaje się pustą komórką, a wartości logiczne są zapisywane jakotrueifalse.
Pusty zagnieżdżony obiekt, taki jak "meta": {}, nie ma pól do spłaszczenia, więc nie tworzy żadnej kolumny.
Tablice wewnątrz rekordów
Arkusze kalkulacyjne nie znają pojęcia listy wewnątrz komórki, więc tablica taka jak "tags": ["red", "sale"] jest zapisywana jako swój tekst JSON, ["red","sale"], w jednej komórce. Dzięki temu dane pozostają bezstratne: możesz je później sparsować z powrotem albo rozdzielić formułą arkusza.
Jeśli naprawdę potrzebujesz jednego wiersza na element tablicy, na przykład jednego wiersza na pozycję zamówienia zamiast na zamówienie, najpierw przekształć dane. W większości języków skryptowych to jednolinijkowe mapowanie po rekordach nadrzędnych, które kopiuje identyfikator rodzica do każdego elementu podrzędnego. Przekazanie przekształconej tablicy do konwertera daje wtedy czysty, w pełni tabelaryczny wynik.
Cudzysłowy i separatory
Komórka jest ujmowana w podwójne cudzysłowy tylko wtedy, gdy to konieczne: gdy zawiera separator, podwójny cudzysłów lub złamanie linii. Cudzysłowy wewnątrz wartości są podwajane, zgodnie z wymogiem RFC 4180, więc 6" pipe jest zapisywane jako "6"" pipe". Każda inna wartość jest zapisywana bez cudzysłowów, co sprawia, że plik jest mały i czytelny.
Separator ma największe znaczenie, gdy plik jest otwierany dwuklikiem w Excelu:
- Przecinek to standard dla Arkuszy Google, LibreOffice, baz danych, modułu
csvw Pythonie i niemal każdego narzędzia importu. - Średnik to to, czego oczekuje Excel, gdy Windows ma ustawienia regionalne z przecinkiem jako separatorem dziesiętnym, co obejmuje większość Europy kontynentalnej i Ameryki Łacińskiej. Przy pliku z przecinkami w takich ustawieniach każdy wiersz ląduje w kolumnie A.
W razie wątpliwości użyj przecinka i otwórz plik przez import w Excelu: Dane, Z pliku tekstowego/CSV, który pozwala jawnie wybrać separator.
Jak czysto przenieść dane do Excela
Kilka problemów pojawia się już po konwersji, w arkuszu kalkulacyjnym, i łatwo im zapobiec:
- Litery z akcentami zamieniają się w symbole. Plik jest w UTF-8 bez znacznika kolejności bajtów, a niektóre wersje Excela przy otwieraniu dwuklikiem zgadują starsze kodowanie. Użyj importu Z pliku tekstowego/CSV i wybierz UTF-8 albo otwórz plik w Arkuszach Google.
- Wiodące zera i długie identyfikatory są przekłamywane. Excel zamienia
00042na42, a liczby 16-cyfrowe i dłuższe zapisuje w notacji naukowej. W oknie importu ustaw te kolumny jako Tekst. - Daty zmieniają format. Ciągi ISO, takie jak
2026-03-01T10:00:00Z, mogą zostać częściowo zinterpretowane. Zaimportuj kolumnę jako Tekst, jeśli potrzebujesz oryginalnej wartości.
Pamiętaj, że liczby powyżej 9 007 199 254 740 991 tracą precyzję już przy parsowaniu JSON-a w przeglądarce, więc bardzo duże identyfikatory, które muszą przetrwać dokładnie, przechowuj w źródłowym JSON jako ciągi znaków.
Najpierw sprawdź dane wejściowe
Jeśli konwerter zgłasza nieprawidłowy JSON, wklej dane do narzędzia formatowanie i walidacja JSON, które pokaże dokładną linię i kolumnę problemu. Dane z pliku logu są często w formacie JSON Lines, z jednym obiektem na linię i bez otaczających nawiasów; obejmij je [ i ] i dodaj przecinki między liniami, aby uzyskać poprawną tablicę. Konwersja w drugą stronę jest dostępna jako CSV na JSON. Całe przetwarzanie odbywa się na stronie, więc nic, co wkleisz, nie jest nigdzie wysyłane.