tooly

Konwertuj CSV na JSON online

Wklej eksport CSV i uzyskaj tablicę obiektów JSON gotową do API, skryptu lub pliku konfiguracyjnego — separator wykrywany automatycznie, nic nie jest wysyłane.

Wszystko działa w przeglądarce — nic nie jest wysyłane

Jak używać

  1. 1

    Wklej swój CSV — pierwszy wiersz musi być nagłówkiem.

  2. 2

    Zostaw włączone „wykrywaj liczby i wartości logiczne”, chyba że każda wartość ma zostać tekstem.

  3. 3

    Skopiuj JSON lub pobierz go jako plik.

Po co zamieniać arkusz w JSON

CSV to format, który eksportują arkusze kalkulacyjne, systemy CRM, banki i panele analityczne. JSON to format, który przyjmują webowe API, kod JavaScript, bazy NoSQL i większość systemów konfiguracji. Ta konwersja pojawia się nieustannie: zasilenie testowej bazy danymi z arkusza prowadzonego przez kolegę, zamiana listy produktów w dane testowe do prototypu front-endu, przekazanie listy przekierowań lub tłumaczeń do skryptu budującego czy wysłanie partii rekordów do API, które przyjmuje tylko JSON.

Wynikiem jest tablica JSON z jednym obiektem na każdy wiersz danych. Wiersz nagłówka dostarcza nazwy właściwości, więc arkusz z kolumnami sku, title i price staje się obiektami z dokładnie tymi trzema kluczami, gotowymi do iterowania.

Jak parser czyta Twój CSV

CSV wygląda banalnie, dopóki wartość nie zawiera separatora. Parser stosuje zasady RFC 4180, najbliższego standardu, jaki ma CSV:

  • Pole ujęte w podwójne cudzysłowy może zawierać separator, złamania linii i cudzysłowy. "Smith, John" pozostaje jedną wartością.
  • Cudzysłów wewnątrz pola w cudzysłowach zapisuje się podwójnie: "6"" pipe" staje się 6" pipe.
  • Linie mogą kończyć się windowsowym CRLF lub uniksowym LF; obsługiwane są oba warianty.
  • Znacznik kolejności bajtów (BOM) na początku, który Excel dodaje przy zapisie jako CSV UTF-8, jest usuwany, żeby nie przykleił się do nazwy pierwszej kolumny.
  • Całkowicie puste linie są pomijane.

Separator jest wybierany przez policzenie przecinków, średników, tabulatorów i pionowych kresek w pierwszej linii i wybranie najczęstszego. Działa to dla niemal każdego eksportu, ale zakłada, że nagłówek jest reprezentatywny. Jeśli nagłówek to jedna kolumna bez separatorów, przyjmowany jest przecinek.

Spacje wokół nazw w nagłówku są obcinane, więc price staje się kluczem price. Wartości w wierszach danych pozostają dokładnie takie, jak zostały zapisane, łącznie ze spacjami na początku lub końcu.

Wartości typowane a ciągi znaków

Przy włączonej opcji „Wykrywaj liczby i wartości logiczne” każda komórka jest sprawdzana według krótkiej listy reguł:

  • Zwykłe liczby całkowite i dziesiętne, takie jak 42, -7 i 19.99, stają się liczbami JSON, o ile mają najwyżej 15 cyfr.
  • Dokładnie true i false, pisane małymi literami, stają się wartościami logicznymi. TRUE, Yes czy 1 zostają bez zmian.
  • Pusta komórka staje się null.
  • Wszystko inne, łącznie z dłuższymi ciągami cyfr, 1.5e3, +5, .5, 1,234 i datami, pozostaje ciągiem znaków.

To wygodne dla większości danych, ale liczby w JSON nie niosą formatowania, więc niektóre wartości po typowaniu zmieniają znaczenie:

  • Wiodące zera znikają. Amerykański kod pocztowy 02134 staje się 2134, a numer artykułu 007 staje się 7.
  • Długie ciągi cyfr straciłyby precyzję. Liczby w JavaScripcie są dokładne tylko do około 15 cyfr znaczących, więc wartości z większą liczbą cyfr, jak 20-cyfrowy identyfikator zamówienia czy numer karty, są zachowywane jako ciągi znaków, zamiast być zaokrąglane.
  • Numery telefonów bez znaku plus i spacji również stają się liczbami.

Jeśli którakolwiek kolumna zawiera identyfikatory, a nie ilości, wyłącz tę opcję i przekonwertuj kilka naprawdę liczbowych pól we własnym kodzie. Przy wyłączonej opcji puste komórki stają się pustymi ciągami zamiast null.

Gdy wynik wygląda źle

  • Wszystko trafia do jednego klucza. Separator nie został wykryty, zwykle dlatego, że nagłówek ma inny separator niż dane albo nie ma go wcale. Sprawdź pierwszą linię.
  • Wartości są przesunięte o jedną kolumnę. Pole zawiera separator, ale nie jest ujęte w cudzysłowy. Wyeksportuj dane ponownie z aplikacji źródłowej zamiast edytować je ręcznie; arkusze kalkulacyjne automatycznie ujmują takie pola w cudzysłowy.
  • Dodatkowe kolumny znikają. Klucze pochodzą wyłącznie z nagłówka, więc komórki za ostatnią kolumną nagłówka są pomijane. Wiersze z mniejszą liczbą komórek dostają null lub pusty ciąg w miejsce brakujących.
  • Dwie kolumny, jeden klucz. Jeśli nagłówek powtarza nazwę, późniejsza kolumna nadpisuje wcześniejszą w każdym obiekcie. Najpierw zmień nazwę jednej z nich.
  • Dziwne znaki, takie jak é. Plik został zapisany w starszym kodowaniu. Zapisz go ponownie jako CSV UTF-8 i wklej jeszcze raz.

Praca z wynikiem

JSON jest wypisywany z wcięciem 2 spacji, co nadaje się do czytania i do zatwierdzenia w repozytorium. Aby go zminifikować na potrzeby żądania API lub zmienić wcięcie, przepuść go przez formatowanie JSON. Aby po edycji pójść w drugą stronę, JSON na CSV odbuduje arkusz z tablicy. Konwersja odbywa się w całości na stronie, co ma znaczenie, gdy eksport zawiera nazwiska klientów, adresy e-mail czy wynagrodzenia.

FAQ

Jakie separatory są obsługiwane?

Przecinek, średnik, tabulator i pionowa kreska są wykrywane automatycznie z pierwszej linii.

Czy pola w cudzysłowach są obsługiwane?

Tak — cudzysłowy, przecinki wewnątrz pól, złamania linii w cudzysłowach i podwojone cudzysłowy zgodnie z RFC 4180.

Co robi „wykrywaj liczby i wartości logiczne”?

„42” staje się liczbą 42, „true” wartością true, a puste komórki wartością null. Ciągi cyfr dłuższe niż 15 znaków zostają tekstem, aby zachować dokładną wartość. Wyłącz, aby wszystko zostało tekstem, np. dla kodów pocztowych z zerem na początku.

Czy moje dane są wysyłane na serwer?

Nie. Parsowanie odbywa się w przeglądarce.

Czy mogę skonwertować pliki Excela?

Najpierw zapisz arkusz jako CSV (Plik → Zapisz jako → CSV UTF-8), a następnie wklej go tutaj.

Podobne narzędzia