Z CSV z separatorem średnikowym do JSON, z zachowaniem zer wiodących

Przećwicz pracę na fikcyjnym pliku CSV z cudzysłowami i wielowierszową komórką: zmień separator, sprawdź rekordy i przekształć dane na JSON, zachowując wartości tekstowe.

Fikcyjne pliki do odtworzenia kroków

Przykład źródłowy
id;name;note;amount;active
0007;Atelier Demo;"Kit; taille M";12,50;false
0042;Studio Exemple;"Message ""merci""
Livraison mardi";0;true
0105;Boutique Fictive;"Paris, France";;false

1. Zacznij od pliku, który możesz sprawdzić

Eksport rozdzielany średnikami może zawierać kolejny średnik w opisie, cudzysłowy, a nawet znak nowego wiersza w jednej komórce. Zastąpienie każdego średnika przecinkiem uszkodziłoby te wartości. Ten poradnik używa trzech fikcyjnych rekordów, aby umożliwić sprawdzenie każdego kroku przed użyciem własnego eksportu.

Pobierz example-semicolon.csv i otwórz go w edytorze tekstu. Jego pięć kolumn to id, name, note, amount i active. Identyfikatory to 0007, 0042 i 0105. Notatka w drugim rekordzie zawiera rzeczywisty podział wiersza, więc plik ma więcej widocznych wierszy niż rekordów danych.

2. Zmień separator, zachowując wartości

Skopiuj cały plik do konwertera separatorów CSV. Wybierz Średnik jako separator źródłowy, a następnie uruchom konwersję. Separator trzeba wybrać samodzielnie; wynik zawsze używa przecinków między kolumnami. Skopiuj wynik i porównaj go z expected-comma.csv.

Wartość 12,50 staje się polem w cudzysłowach w wyniku rozdzielanym przecinkami, ale jej przecinek dziesiętny pozostaje bez zmian. Kit; taille M zachowuje średnik wewnątrz tekstu. W notatce drugiego rekordu cudzysłowy wokół merci zostają podwojone zgodnie z formatem CSV, a podział wiersza pozostaje w tej samej komórce.

3. Sprawdź rekordy przed przejściem dalej

Wklej wynik do eksploratora CSV i wybierz Przecinek. Kliknij „Przeglądaj CSV”, aby utworzyć tabelę. Powinny pojawić się trzy rekordy i pięć kolumn. Wyszukaj 0042: powinien pozostać tylko jeden wiersz. Sprawdź jego identyfikator i notatkę. Tabela może wizualnie zastąpić osadzony podział wiersza spacją; eksport po filtrowaniu pozwala sprawdzić, czy rzeczywista wartość została zachowana.

Wypróbuj opcję Eksportuj przefiltrowany CSV, a następnie użyj wygenerowanego linku do pobrania. Porównaj plik z expected-filtered-0042.csv. Wyczyść wyszukiwanie, aby znów zobaczyć wszystkie trzy wiersze. Pobierany plik zawiera tylko pasujące rekordy, więc jeśli chcesz mieć w JSON wszystkie trzy rekordy, w następnym kroku użyj pełnego wyniku konwertera separatorów.

4. Przekonwertuj na JSON z wartościami tekstowymi

Wklej pełny wynik rozdzielany przecinkami do narzędzia CSV na JSON. Porównaj wynik z expected.json: powinny być trzy obiekty. Każdy nagłówek staje się nazwą właściwości. Identyfikator "0007" pozostaje ciągiem znaków z zerami wiodącymi; "false", "true", "0" i "12,50" także pozostają ciągami znaków. Pusta komórka amount w trzecim rekordzie staje się "", a nie null.

Znak końca wiersza pojawia się w tekście JSON jako sekwencja specjalna \n. Gdy aplikacja odczytuje ten JSON, oznacza ona koniec wiersza wewnątrz wartości. Konwersja nie rozpoznaje liczb, dat ani wartości logicznych. Późniejsze konwersje typów wykonuj świadomie, zgodnie z wymaganiami aplikacji docelowej.

Zanim użyjesz własnego eksportu

Nagłówki muszą być unikalne, a każdy rekord musi mieć tę samą liczbę pól. Niepoprawne użycie cudzysłowów jest odrzucane. Eksplorator przyjmuje do 2 000 000 znaków i wyświetla pierwszych 500 pasujących rekordów; eksport obejmuje wszystkie przefiltrowane rekordy. Limity te nie stanowią gwarancji wydajności na każdym urządzeniu.

Konwersja nie neutralizuje formuł. Przed otwarciem niezaufanych danych w arkuszu kalkulacyjnym sprawdź komórki zaczynające się od =, +, -, @, tabulatora lub znaku końca wiersza. Same cudzysłowy CSV nie zapewniają bezpieczeństwa. Użyj odpowiednich ustawień importu i sprawdź kolumny tekstowe. Zachowanie arkuszy jest różne; ten poradnik nie gwarantuje pełnej zgodności z Excelem.

Najczęstsze pytania

Czy konwerter separatorów może tworzyć wynik rozdzielany średnikami?

Nie. Odczytuje dane rozdzielane przecinkami, średnikami lub tabulatorami i tworzy CSV rozdzielany przecinkami.

Dlaczego arkusz kalkulacyjny usunął zera wiodące?

Arkusz kalkulacyjny może interpretować kolumnę jako liczby. Sprawdź plik tekstowy, wybierz import identyfikatorów jako tekstu, a następnie zweryfikuj wynik w swojej aplikacji.

Czy mogę przekonwertować do JSON tylko wyszukany rekord?

Tak. Wyeksportuj przefiltrowany CSV z przeglądarki danych z wybraną opcją Przecinek, a następnie wklej jego zawartość do konwertera CSV na JSON. W tym przykładzie wyszukanie 0042 daje jeden obiekt.

Źródła

Przejdź do kolejnego ćwiczenia