CSV를 JSON으로 변환
또는 자막 텍스트를 붙여넣으세요
이 변환에서 달라지는 것
이 방향에서는 아무것도 잃지 않습니다. 원본 형식의 모든 기능이 대상 형식에 갈 곳이 있습니다.
이 목록은 불러온 특정 파일이 아니라 두 형식의 기능 행렬에서 나옵니다. 어떤 파일은 형식이 허용하지만 행렬이 모델링하지 않는 기능을 쓰고 있다면 더 많이 잃을 수 있습니다.
CSV를 JSON으로 바꾸는 이 방향에서는 잃는 것이 없습니다. CSV가 표현하는 모든 것을 JSON이 똑같이 담을 수 있어서, 시간축과 줄 바꿈, 글자가 그대로 남고 포장만 달라집니다. 형식이 허용하는 기능을 모두 쓴 CSV라도 마찬가지입니다.
CSV는 시간을 00:00:04.126처럼 천분의 1초까지 적고, JSON은 같은 순간을 4126이라는 밀리초 정수로 적습니다. 두 형식 모두 그보다 잘게 나누지 않으므로 값이 반올림되거나 이동하지 않고, 2.9초짜리 cue는 JSON에서도 2.9초입니다.
표의 행 하나가 cue 객체 하나가 되어 id, start, end, text를 가집니다. 셀 안의 여러 줄은 lines 배열의 여러 항목으로 들어가 한 자막이라는 사실이 유지되고, 머리글 행은 데이터가 아니라 이름으로 읽힙니다.
여러 파일을 한 번에 넣으면 차례로 변환되어 ZIP 하나로 내려옵니다. 결과를 스크립트로 다루기 좋은 모양이며, 변환은 브라우저 안에서 실행되어 원본이 업로드되지 않습니다.
예시
일반적인 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."
]
}
]
}
실제 파일에서 흔한 손상입니다. 줄 바꿈이 섞이고, 공백이 남고, 빈 필드가 있습니다. 위의 깔끔한 예시와 비교해 파서가 무엇을 넘겨주는지 보세요.
자주 묻는 질문
CSV를 JSON으로 바꾸면 결과가 어떻게 생겼나요?
cue 객체의 배열이 나오고 각 객체는 id, start, end, text를 가집니다. CSV의 행 하나가 JSON의 cue 하나가 되어 순서와 글자는 같고, 시간은 밀리초 정수로 적힙니다.
CSV의 시간값은 JSON에서도 정확한가요?
밀리초까지 정확합니다. CSV의 00:00:04.126은 JSON의 4126이 되고, 두 형식 모두 그보다 잘게 나누지 않으므로 값이 반올림되거나 이동하지 않습니다. 2.9초짜리 cue는 JSON에서도 2.9초입니다.
CSV 셀 안의 두 줄은 JSON에서 어떻게 되나요?
cue의 lines 배열에 두 항목으로 들어갑니다. 두 줄이 한 자막이라는 사실이 유지되어 재생기가 함께 보여 주며, 다시 CSV로 읽어도 한 행입니다.
CSV cue 순서는 JSON에서도 유지되나요?
유지되고, 변환 과정에서 시작 시간이 이른 순서로 정렬됩니다. CSV가 행을 뒤섞어 두었다면 JSON 결과에서 순서가 바로잡히며, 이는 내용이 아니라 구조를 바꾸는 일입니다.
JSON을 다시 CSV로 바꾸면 무엇을 잃나요?
스타일, 위치, 노래방을 잃습니다. 이 방향은 무손실이지만 반대 방향은 그렇지 않습니다. JSON이 스타일과 위치를 담을 수 있어도 CSV에는 그 열이 없으므로, 되돌릴 때만 그 비용이 생깁니다.
CSV를 JSON으로 바꾸면 결과 인코딩은 어떻게 되나요?
원본이 무엇이었든 결과는 UTF-8에 유닉스 줄 바꿈, 바이트 순서 표시 없음입니다. UTF-16이나 윈도우 단일 바이트 인코딩으로 들어온 파일은 읽는 과정에서 디코딩되며, 그 사실은 결과 패널에 표시됩니다.