Przejdź do treści
SubtitleMatrix

Konwerter napisów CSV na JSON

Albo wklej tekst napisów

Co zmienia ta konwersja

W tym kierunku nic nie ginie — każda cecha formatu źródłowego ma gdzie trafić w formacie docelowym.

Ta lista pochodzi z macierzy możliwości tych dwóch formatów, a nie z konkretnego wczytanego pliku. Konkretny plik może stracić więcej, jeśli używa cech, które format dopuszcza, ale macierz ich nie modeluje.

Ta strona zamienia CSV na JSON. Upuść plik — albo wklej tekst — a dostaniesz wersję JSON. Konwersja odbywa się w całości w Twojej przeglądarce, więc nic nie jest wysyłane i konto nie jest potrzebne.

W tym kierunku nic nie ginie. Wszystko, co wyraża CSV, wyraża też JSON, więc wynik to te same napisy w innym opakowaniu — oś czasu, podział wierszy i tekst zostają. Znaczniki czasu zmieniają tylko postać: CSV zapisuje 00:00:04.126, a JSON liczbę 4126 oznaczającą milisekundy.

Jeden plik wystarczy, cały sezon też: kolejka przetwarza je po kolei, a wyniki pobierasz razem jako jeden ZIP.

Przykłady

Typowy plik CSV zamieniony na JSON

Wejście

start,end,text
00:00:01.000,00:00:03.500,The quick brown fox.
00:00:04.000,00:00:06.250,"Jumps over, the lazy dog."
00:00:07.000,00:00:09.000,"Two lines here.
And a second one."

Wynik

{
  "version": 1,
  "cues": [
    {
      "start": 1000,
      "end": 3500,
      "lines": [
        "The quick brown fox."
      ]
    },
    {
      "start": 4000,
      "end": 6250,
      "lines": [
        "Jumps over, the lazy dog."
      ]
    },
    {
      "start": 7000,
      "end": 9000,
      "lines": [
        "Two lines here.",
        "And a second one."
      ]
    }
  ]
}

Nic tu nie ginie: porównaj obie strony wiersz po wierszu.

Ta sama konwersja na niewygodnym wejściu

Wejście

id,start,end,note,text
1,00:00:01,000,00:00:04,000,cue one,"Hello there, friend."
2,00:00:05.000,00:00:07.000,cue two,Second line.
bad,notatime,00:00:09.000,cue three,Unreadable start.
4,00:00:10.000,00:00:09.000,cue four,End before start.
5,00:00:12.000,00:00:14.000,cue five,Unquoted comma in text, right here.

Wynik

{
  "version": 1,
  "cues": [
    {
      "id": "1",
      "start": 1000,
      "end": 4000,
      "lines": [
        "Hello there, friend."
      ]
    },
    {
      "id": "2",
      "start": 5000,
      "end": 7000,
      "lines": [
        "Second line."
      ]
    },
    {
      "id": "4",
      "start": 10000,
      "end": 10001,
      "lines": [
        "End before start."
      ]
    },
    {
      "id": "5",
      "start": 12000,
      "end": 14000,
      "lines": [
        "Unquoted comma in text, right here."
      ]
    }
  ]
}

Tak wyglądają prawdziwe tabele: nagłówek z innymi nazwami, znacznik czasu bez cudzysłowów, pusta komórka. Porównaj z czystym przykładem powyżej, żeby zobaczyć, co parser wybacza.

Częste pytania

Jak wygląda wynik, gdy CSV staje się JSON?

Jak JSON: tablica obiektów bloków, każdy z polami start i end w milisekundach oraz tablicą lines. Kolumna id trafia do pola id, a pozostałe nierozpoznane kolumny nie są przenoszone. Każdy blok CSV staje się jednym blokiem JSON, w tej samej kolejności i z tym samym tekstem.

Czy czasy z CSV są w JSON dokładne?

Tak, co do milisekundy — a drobniej nie zapisuje ani CSV, ani JSON. CSV pisze chwilę jako 00:00:04.126, a JSON jako 4126; między nimi nic nie jest zaokrąglane ani przesuwane, więc blok widoczny przez 2,9 sekundy nadal tyle trwa.

Co dzieje się z dwuwierszowym blokiem CSV w JSON?

Staje się dwoma wpisami w tablicy lines tego bloku. Więź zostaje — oba wiersze z komórki CSV nadal tworzą jeden blok w wyniku JSON i odtwarzacz pokazuje je razem.

Czy w CSV na JSON bloki zachowują kolejność?

Tak, a po drodze są sortowane po czasie startu — najwcześniejsze pierwsze, tak jak oczekuje każdy format na tej stronie i jak czytają je odtwarzacze. Jeśli Twój plik CSV miał bloki w innej kolejności, wynik JSON je uporządkuje; to zmiana struktury pliku, nie treści, i jest zamierzona.

Czy mogę przekonwertować JSON z powrotem na CSV?

Tak, ale to kierunek stratny: stylizacja, pozycjonowanie i karaoke nie mają w CSV gdzie trafić. W tę stronę nic nie ginie, więc ten koszt pojawia się dopiero przy powrocie.

Czy wynik JSON zachowa kodowanie pliku CSV?

Nie — wynik jest w UTF-8, z uniksowymi końcami wierszy i bez BOM, niezależnie od tego, czego używał plik CSV. Plik w UTF-16 albo w windowsowym kodowaniu jednobajtowym jest dekodowany przy wejściu (panel wyniku to sygnalizuje), a na wyjściu zawsze dostajesz ten sam JSON w UTF-8.

Powiązane narzędzia