Przejdź do treści

Konwerter CSV na JSON - Darmowe Narzędzie Online do Konwersji Plików

Natychmiastowa konwersja CSV na JSON i JSON na CSV w przeglądarce. Bezpieczna, szybka konwersja danych z podglądem i możliwością pobrania. Bez konieczności przesyłania plików.

Konwerter plików CSV/JSON

Konwertuj między formatami CSV a JSON bez wysiłku. Prześlij swój plik, podejrzyj dane i pobierz przekonwertowany wynik.

Konwerter CSV do JSON

Konwerter JSON do CSV

Kalkulator załadunku...
📚

Dokumentacja

Czym jest konwerter CSV na JSON?

Konwerter CSV na JSON to narzędzie, które zmienia dane z formatu CSV (Comma-Separated Values) na format JSON (JavaScript Object Notation) lub odwrotnie. Konwerter działa w całości w przeglądarce internetowej. Nigdy nie wysyła przesłanego pliku na serwer, więc dane pozostają na urządzeniu użytkownika.

CSV to format zwykłego tekstu używany do przechowywania tabel, takich jak arkusze wyeksportowane z programu Excel lub Arkuszy Google. JSON to format tekstowy zbudowany z par klucz-wartość, powszechnie używany do przesyłania danych między aplikacjami internetowymi i interfejsami API. Ponieważ oba formaty organizują dane w różny sposób, konwersja między nimi wymaga określonego zestawu reguł, opisanych poniżej.

Jak konwertować CSV na JSON

  1. Kliknij „Prześlij plik CSV” i wybierz z urządzenia plik .csv.
  2. Narzędzie wyświetla podgląd surowej zawartości pliku.
  3. Kliknij „Konwertuj na JSON”. Narzędzie odczytuje pierwszy wiersz jako nagłówki kolumn i zamienia każdy kolejny wiersz w jeden obiekt JSON.
  4. Wynik pojawia się w podglądzie wyjściowym i jest sformatowany z użyciem wcięć.
  5. Kliknij „Pobierz JSON”, aby zapisać plik jako .json, albo „Kopiuj JSON”, aby skopiować tekst.

Jak konwertować JSON na CSV

  1. Kliknij „Prześlij plik JSON” i wybierz plik .json. Plik musi zawierać tablicę obiektów JSON, na przykład [{"Name":"Ann"},{"Name":"Bo"}].
  2. Narzędzie wyświetla podgląd surowego tekstu JSON.
  3. Kliknij „Konwertuj na CSV”. Narzędzie zbiera każdy klucz użyty we wszystkich obiektach i zamienia go w kolumnę.
  4. Wynik pojawia się w podglądzie wyjściowym jako tekst CSV.
  5. Kliknij „Pobierz CSV”, aby zapisać plik jako .csv, albo „Kopiuj CSV”, aby skopiować tekst.

Nie ma limitów przesyłania narzuconych przez serwer, ponieważ żadne dane nie opuszczają przeglądarki. Bardzo duży plik może jednak spowolnić działanie karty przeglądarki, ponieważ podczas konwersji cały plik jest przechowywany w pamięci.

Reguły konwersji CSV na JSON

Konwerter odczytuje pierwszy wiersz pliku jako nazwy kolumn. Każdy kolejny wiersz staje się jednym obiektem JSON, a nazwy kolumn są jego kluczami. Wiersz zawierający więcej wartości niż nagłówków otrzymuje dodatkowe klucze nazwane na podstawie ich bezwzględnej pozycji w wierszu, więc przy 3 nagłówkach czwarta wartość otrzymuje klucz field_4, piąta field_5 i tak dalej, dzięki czemu żadne dane nie są pomijane. Wiersz zawierający mniej wartości otrzymuje puste ciągi znaków dla brakujących kluczy. Jeśli dwa nagłówki mają tę samą nazwę, drugi zostaje przemianowany przez dodanie przyrostka, więc a, a staje się kluczami a i a_2.

Konwerter stosuje reguły CSV określone w dokumencie RFC 4180, będącym standardem technicznym tego formatu. Przecinek wewnątrz pola jest traktowany jako wartość należąca do tego pola, a nie jako separator kolumn, tylko wtedy, gdy pole jest ujęte w podwójne cudzysłowy, na przykład "Smith, John". Znak końca wiersza wewnątrz cudzysłowów pozostaje częścią wartości, zamiast być traktowany jako początek nowego wiersza. Dwa podwójne cudzysłowy wewnątrz pola ujętego w cudzysłowy oznaczają jeden dosłowny znak cudzysłowu.

Jako separator kolumn rozpoznawane są wyłącznie przecinki; narzędzie nie wykrywa ani nie obsługuje średników, tabulatorów ani innych separatorów.

Każda wartość jest sprawdzana i konwertowana na określony typ:

  • Wartość zapisana jako zwykła liczba, taka jak 42 lub -3.5, staje się liczbą JSON.
  • Tekst true lub false, niezależnie od wielkości liter, staje się wartością logiczną JSON.
  • Wszystko inne pozostaje ciągiem znaków JSON, w tym puste komórki, które stają się pustymi ciągami znaków.
  • Liczba z zerem wiodącym, taka jak 00512, pozostaje ciągiem znaków, ponieważ zero wiodące często ma znaczenie, na przykład w kodzie pocztowym lub numerze identyfikacyjnym.
  • Liczba jest akceptowana tylko wtedy, gdy jej ponowny zapis daje dokładnie ten sam tekst. Długie liczby całkowite większe niż 9,007,199,254,740,991, czyli największa liczba całkowita przechowywana dokładnie przez liczbę JavaScript, zwykle nie przechodzą tego sprawdzenia i pozostają ciągami znaków, dzięki czemu nie dochodzi do utraty cyfr.
  • Wartość, którą plik już ujął w cudzysłowy, jest zawsze zachowywana jako ciąg znaków, nawet jeśli wygląda jak liczba, ponieważ cudzysłowy są traktowane jako oznaczenie jej przez autora jako tekstu.

Puste wiersze w pliku są pomijane i nie tworzą pustych obiektów.

Zasady konwersji JSON do CSV

Konwerter analizuje każdy obiekt w tablicy i zbiera pełny zestaw kluczy użytych we wszystkich obiektach. Klucze te stają się nagłówkami kolumn CSV w kolejności ich pierwszego wystąpienia. Jeśli w jednym obiekcie brakuje klucza obecnego w innym obiekcie, jego komórka pozostaje pusta, zamiast powodować błąd.

Konwersja JSON na CSV nie spłaszcza zagnieżdżonych obiektów do osobnych kolumn. Wartość będąca obiektem lub tablicą jest zapisywana ponownie jako tekst JSON w jednej komórce, więc {"b": 1} staje się komórką {"b":1}, a [1, 2] staje się komórką [1,2]. Nic nie zostaje utracone, ale zagnieżdżona część pozostaje w jednej kolumnie zamiast zostać rozdzielona. Jeśli każdy element ma wymagać osobnej kolumny, zagnieżdżony kod JSON należy najpierw spłaszczyć ręcznie.

Wartość null oraz klucz obecny w jednym obiekcie, ale nieobecny w innym, powodują powstanie pustej komórki.

Wartość komórki zawierająca przecinek, cudzysłów lub znak końca wiersza jest w danych wyjściowych ujmowana w podwójne cudzysłowy, a każdy zawarty w niej cudzysłów jest podwajany, zgodnie z opisaną wyżej regułą kodowania CSV.

Wejściowy kod JSON musi być tablicą, a każdy jej element musi być obiektem. Liczba, ciąg znaków, null lub zagnieżdżona tablica zamiast obiektu powoduje błąd „JSON must be an array of objects”. Tablica całkowicie pozbawiona elementów powoduje błąd „The JSON array is empty. Add at least one object to convert.”. Przesłany plik bez żadnej zawartości powoduje błąd „The uploaded file is empty.”.

Przykład rozwiązany

Początkowy plik CSV:

1Name,Age,Member
2Ann Lee,29,true
3"Bo, Jr.",7,false
4

Konwersja na JSON daje:

1[
2  {
3    "Name": "Ann Lee",
4    "Age": 29,
5    "Member": true
6  },
7  {
8    "Name": "Bo, Jr.",
9    "Age": 7,
10    "Member": false
11  }
12]
13

Zwróć uwagę, że "Bo, Jr." zachowało przecinek, ponieważ pole było ujęte w cudzysłowy w pliku źródłowym, a Age i Member stały się odpowiednio liczbą i wartością logiczną.

Konwersja tego samego kodu JSON z powrotem do CSV, z dodanym wierszem, w którym brakuje Age, daje:

1Name,Age,Member
2Ann Lee,29,true
3"Bo, Jr.",7,false
4Cy Tan,,true
5

Brakująca wartość Age staje się pustą komórką, a przecinek w "Bo, Jr." powoduje ponowne ujęcie pola w cudzysłowy podczas zapisu.

Typowe zastosowania

  • Analiza danych: przekształcenie eksportu CSV z arkusza kalkulacyjnego lub narzędzia analitycznego na JSON, aby można go było przetwarzać za pomocą JavaScriptu, a następnie ponowna konwersja wyników do CSV na potrzeby raportu.
  • Testowanie API: programista tworzący API przyjmujące przesyłane pliki CSV może konwertować przykładowe pliki na JSON, aby sprawdzić, czy parser tworzy oczekiwane obiekty.
  • Migracja danych: przenoszenie rekordów z systemu eksportującego dane w formacie CSV do systemu akceptującego wyłącznie JSON lub w odwrotnym kierunku.
  • Szybka inspekcja: przekształcenie pliku JSON w przypominający tabelę plik CSV w celu ułatwienia odczytu lub wykonanie konwersji w odwrotnym kierunku.

Biblioteki programistyczne oferują tę samą konwersję przy większej liczbie lub cyklicznym wykonywaniu zadań, na przykład moduły csv i json w Pythonie lub biblioteka pandas. Narzędzia wiersza poleceń, takie jak csvkit i jq, obsługują konwersję i filtrowanie z poziomu terminala. Te rozwiązania nadają się do przetwarzania wsadowego, natomiast to narzędzie przeglądarkowe służy do jednorazowej konwersji pliku bez instalowania czegokolwiek.

Często zadawane pytania

Czy przesłany plik jest wysyłany na serwer? Nie. Konwersja odbywa się w JavaScripcie wewnątrz karty przeglądarki. Plik jest odczytywany z lokalnego urządzenia i nigdy nie jest przesyłany.

Czy konwerter obsługuje separatory inne niż przecinek, takie jak średnik lub tabulator? Nie. Obecna wersja odczytuje wyłącznie wartości rozdzielane przecinkami. Plik używający innego separatora należy najpierw przekształcić do postaci z wartościami rozdzielanymi przecinkami, na przykład zastępując separator w edytorze tekstu.

Dlaczego liczba taka jak 00512 pozostała ciągiem tekstowym w danych wyjściowych JSON? Zera wiodące zwykle mają znaczenie, na przykład w kodzie pocztowym, dlatego konwerter zachowuje tę wartość jako ciąg znaków, zamiast przekształcać ją w liczbę 512, co spowodowałoby utratę zera.

Co się stanie, jeśli przekonwertuję kod JSON zawierający zagnieżdżone obiekty? Zagnieżdżony obiekt zostanie zapisany jako tekst JSON w jednej komórce, na przykład {"b":1}. Dane zostaną zachowane, ale nie zostaną rozdzielone na osobne kolumny. Jeśli każde pole ma wymagać własnej kolumny, należy najpierw spłaszczyć zagnieżdżone dane.

Co się stanie, jeśli mój kod JSON nie jest tablicą obiektów? Narzędzie wyświetli błąd i niczego nie skonwertuje. Dane wejściowe muszą być tablicą JSON, której każdy element jest obiektem, na przykład [{"a":1},{"a":2}].

Czy pierwszy wiersz pliku CSV zawsze musi być wierszem nagłówków? Tak. Konwerter zawsze traktuje pierwszy wiersz jako nazwy kolumn. Plik bez wiersza nagłówków będzie miał pierwszy wiersz danych błędnie odczytany jako nagłówki.

Piśmiennictwo

  1. Shafranovich, Y. "Common Format and MIME Type for Comma-Separated Values (CSV) Files." RFC 4180, IETF, październik 2005. https://www.rfc-editor.org/rfc/rfc4180
  2. Bray, T., red. "The JavaScript Object Notation (JSON) Data Interchange Format." RFC 8259, IETF, grudzień 2017. https://www.rfc-editor.org/rfc/rfc8259
  3. "Working with JSON." MDN Web Docs, Mozilla. https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Scripting/JSON