Конвертер CSV у JSON
Або вставте текст субтитрів
Що змінює ця конвертація
У цьому напрямку нічого не втрачається — кожна можливість вихідного формату має куди подітися в цільовому.
Цей перелік походить із матриці можливостей для цих двох форматів, а не з конкретного завантаженого файлу. Певний файл може втратити більше, якщо використовує можливості, які формат дозволяє, а матриця не моделює.
Ця сторінка переписує CSV у JSON. CSV тримає таблицю з початком, кінцем і текстом, а JSON зберігає всю модель субтитрів у структурованому вигляді. Час переходить із запису 1000,3500,текст у start: 1000, end: 3500. Слова й порядок реплік лишаються тими самими.
У цьому напрямку нічого не втрачається: JSON покриває всі виміри, які є в CSV, зокрема усе, що є в моделі: стилі, позиції, караоке й теги. CSV не містить нічого, чого JSON не вміє зберегти, тож вихідний файл — це ті самі репліки в іншій обгортці.
Один файл чи ціла тека: черга обробляє їх по одному, а результат забирається одним архівом. Обробка йде у вашому браузері — файли нікуди не надсилаються.
Приклади
Типовий файл CSV, переписаний у JSON
Вхід
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."
Результат
{
"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."
]
}
]
}
Обидві колонки збігаються рядок у рядок: переписується лише синтаксис, а текст і час лишаються тими самими.
Той самий перехід на неохайному файлі CSV
Вхід
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.
Результат
{
"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."
]
}
]
}
Справжні файли приходять із BOM, переводами рядків Windows, зайвим рядком перед часом або часом, який взагалі не читається. Ніщо з цього не валить обробку: нерозпізнане потрапляє у звіт, а не зникає мовчки.
Часті запитання
Як читається CSV-файл CSV під час конвертації у JSON?
Під час перетворення CSV у JSON конвертер визначає ролі колонок за заголовком (start, end, text), тому порядок колонок може відрізнятися від нашого прикладу. Час читається в мілісекундах; якщо колонки end немає, кінець репліки виводять із наступного рядка.
Яку структуру матиме JSON-файл після конвертації CSV?
Це буде об’єкт із масивом реплік: у кожної поля start та end у мілісекундах, рядки тексту й теги. Стилі, позиції та караоке, які CSV уміє зберегти, перейдуть у відповідні поля, а не втратяться в рядку тексту.
Як зміниться запис часу, коли CSV перетворити у JSON?
У CSV момент записано як 1000,3500,текст, а JSON записує його як start: 1000, end: 3500. Точнішого запису, ніж у джерелі, не з’являється, зате жодне значення не округлюється. Слова й порядок реплік при цьому не змінюються.
Чи справді під час конвертації CSV у JSON нічого не втрачається?
Так. CSV тримає таблицю з початком, кінцем і текстом, а JSON має повну систему стилів і вміє зберегти кожен із цих вимірів. Тому вихідний файл містить ті самі репліки в іншому синтаксисі, і жодне поле не залишається без місця.
Як виглядатиме одна репліка CSV у файлі JSON?
У CSV таблиця із заголовком start, end, text і рядком на репліку. У JSON один об’єкт із масивом реплік; час, стилі й позиції задані полями. Перетворення зберігає початок і кінець кожної репліки, тому на екрані вона з’явиться в той самий момент; змінюється лише те, як цей момент записано.