CSV (Comma-Separated Values, wartości rozdzielane przecinkami) to najbardziej uniwersalny tekstowy format danych tabelarycznych. Prawie wszystkie programy arkuszy kalkulacyjnych (Excel, Google Sheets, Numbers, WPS) obsługują import i eksport CSV, jest to również jeden z najczęściej używanych formatów do wymiany danych, masowego importu i eksportu. JSON (JavaScript Object Notation) to najczęściej używany format wymiany danych w API Web i nowoczesnym programowaniu. Konwersja CSV na JSON to bardzo częste zapotrzebowanie w programowaniu: otrzymujesz CSV eksportowany z Excela od product managera/specjalisty od operacji, który trzeba przekonwertować na JSON dla interfejsu, eksportujesz CSV z bazy danych i musisz przekonwertować na JSON jako dane mock, podczas migracji danych CSV trzeba zaimportować do dokumentowych baz danych, takich jak MongoDB... Dobre narzędzie do konwersji może zaoszczędzić wiele czasu na ręcznym składaniu JSON.
CSV wydaje się prosty — pola rozdzielane przecinkami, wiersze rozdzielane nową linią — ale w rzeczywistości ma wiele pułapek: co zrobić, jeśli pole zawiera przecinek? Co zrobić, jeśli pole zawiera nową linię? Jak obsłużyć znaki ucieczki cudzysłowów? CSV eksportowane w różnych krajach mogą również używać średnika jako separatora (w Europie, ponieważ przecinek jest używany jako separator dziesiętny) lub być rozdzielane tabulatorami (format TSV). Nieobsłużenie tych problemów spowoduje, że parsowane dane będą błędne. To narzędzie implementuje parser zgodny ze standardem RFC 4180 CSV, poprawnie obsługuje pola otoczone cudzysłowami, znaki ucieczki podwójnych cudzysłowów, przecinki/nowe linie wewnątrz pól i inne sytuacje brzegowe, nie jest to proste string.split(','), wyniki są dokładne i wiarygodne.
Automatyczne rozpoznawanie separatorów to bardzo praktyczna funkcja. Wielu developerów, otrzymując plik CSV, pierwszą rzeczą, o której myśli, jest użycie split(','), ale eksport z europejskiego Excela domyślnie używa średnika (;) jako separatora, bezpośredni split po przecinku potraktuje cały wiersz jako jedno pole; pliki TSV są rozdzielane tabulatorami, split po przecinku jest całkowicie błędny. Narzędzie liczy wystąpienia przecinków, średników i tabulatorów w każdym wierszu, automatycznie ocenia najbardziej prawdopodobny separator i ujednolica konwersję, nie musisz się martwić o źródło pliku, po prostu wklej.
Inteligentna naprawa błędów to podstawowa funkcja wyróżniająca to narzędzie spośród prostych narzędzi internetowych. W rzeczywistej pracy otrzymywane pliki CSV często nie są standardowe: w niektórych wierszach jest nieprawidłowa liczba kolumn (obcięcie podczas kopiowania i wklejania, dodatkowe przecinki w środku), w niektórych cudzysłowy nie są zamknięte (błędy eksportu), w niektórych użyto mieszanych separatorów, bezpośrednie parsowanie zakończy się niepowodzeniem lub da błędne wyniki. Narzędzie napotykając te problemy nie odmawia bezpośrednio konwersji, zamiast tego: ① wymienia wszystkie numery wierszy z problemami i przyczyny błędów; ② udostępnia przycisk jedno-klikowej naprawy, automatycznie uzupełnia puste kolumny/obcina/uzupełnia cudzysłowy; ③ nawet przy ostrzeżeniach stara się wyjściować użyteczny wynik JSON, cała konwersja pliku nie zawodzi z powodu błędu w jednym wierszu.
Podwójny tryb wyjścia: sformatowany/skompresowany odpowiada różnym scenariuszom użycia: podczas debugowania i czytania używaj trybu sformatowanego — wcięcia 2 spacji, przejrzysta hierarchia, na pierwszy rzut oka widać strukturę obiektu; dla środowiska produkcyjnego, odpowiedzi API, plików konfiguracyjnych używaj trybu skompresowanego — usuwa wszystkie odstępy i nowe linie, mniejszy rozmiar, szybsza transmisja. Przełącznik natychmiast renderuje ponownie, bez konieczności ponownej konwersji.
Dlaczego całkowicie lokalne przetwarzanie jest ważne? Pliki CSV często zawierają rzeczywiste dane biznesowe, informacje o klientach, niepubliczne dane produktów i inne wrażliwe treści. W przypadku wysyłania na serwer konwersji innej firmy istnieje ryzyko wycieku danych. Cała logika parsowania i konwersji tego narzędzia jest wykonywana lokalnie w JavaScript przeglądarki, plik jest przetwarzany tylko w pamięci Twojego komputera, nie ma żadnych żądań sieciowych, działa również bez sieci, co fundamentalnie rozwiązuje problem bezpieczeństwa danych. Lokalne przetwarzanie ma również zaletę szybkości — pliki o wielkości kilku MB są konwertowane natychmiast, nie trzeba czekać na wysyłanie i pobieranie.
Przeciągalny panel podziału i historia lokalna to szczegóły zoptymalizowane pod kątem częstego użycia: podczas przetwarzania szerokich tabel możesz poszerzyć obszar wejściowy, gdy skupiasz się na wyniku, poszerz obszar wyjściowy; ostatni nieprzetworzony CSV przy następnym otwarciu automatycznie się przywraca, nie musisz ponownie szukać pliku w wiadomościach e-mail/czacie i kopiować i wklejać. Jedno-klikowe przejście do narzędzia formatowania JSON jest dodatkowo przemyślane pod kątem rzeczywistego przepływu pracy — po przekonwertowaniu JSON zazwyczaj trzeba go sformatować, zweryfikować, skompresować, bezpośrednie przejście bez konieczności ponownego kopiowania, wklejania i otwierania nowej strony.
Należy zaznaczyć: ① Wszystkie wartości CSV są ujednolicane do typu ciągu znaków, jest to celowe zaprojektowanie — CSV nie ma informacji o typach, automatyczna konwersja na liczby/boolean może spowodować błędy (np. kod pocztowy 00123, numery identyfikacyjne i inne wiodące zera zostaną utracone), jeśli potrzebujesz konwersji typów, obsłuż to w kodzie; ② Obecnie obsługiwana jest tylko jednokierunkowa konwersja CSV → JSON, do konwersji JSON → CSV użyj odpowiedniego narzędzia na tej stronie; ③ Bardzo duże pliki (>10MB, miliony wierszy) zaleca się przetwarzać narzędziami linii poleceń (np. csvtojson, jq), to narzędzie jest przeznaczone dla scenariuszy debugowania developerskiego, do kilkudziesięciu tysięcy wierszy działa zupełnie płynnie.