Chuyển JSON sang CSV
Hoặc dán văn bản phụ đề
Chuyển đổi này thay đổi điều gì
3 thứ bị bỏ hoặc cần một quyết định
- Định dạng hiển thị
mọi định dạng hiển thị (đậm, nghiêng, màu, viền, bóng)
- Vị trí
vị trí trên màn hình (mọi cue trở về vị trí mặc định)
- Karaoke
thời gian karaoke (tô sáng từng âm tiết)
Danh sách này đến từ ma trận năng lực của hai định dạng này, không phải từ tệp cụ thể bạn đã tải lên. Một tệp cụ thể có thể mất nhiều hơn nếu nó dùng các tính năng mà định dạng cho phép nhưng ma trận không mô hình hóa.
Trang này chuyển đổi JSON sang CSV. Bạn kéo tệp vào hoặc dán văn bản, rồi nhận lại phiên bản CSV. Toàn bộ quá trình chạy ngay trong trình duyệt: không tải tệp lên máy chủ, không cần tài khoản.
JSON có thể mang kiểu chữ, vị trí và mốc karaoke; CSV chỉ có ba cột start, end, text nên cả ba đều không có chỗ đứng. Danh sách mất mát phía trên lấy từ khả năng của hai định dạng chứ không phải từ tệp của bạn, nên nó giống nhau trước khi bạn mở tệp.
Một tệp hay cả mùa đều được: hàng đợi xử lý lần lượt và trả kết quả về cùng một tệp ZIP.
Ví dụ
Tệp JSON thông thường, chuyển sang CSV
Đầu vào
{
"version": 1,
"title": "Fixture: typical",
"fps": 25,
"styles": {
"Default": {
"name": "Default",
"fontFamily": "Arial",
"fontSize": 20,
"primaryColor": "#FFFFFF",
"bold": false,
"italic": false
}
},
"generator": "subtitlematrix fixtures",
"cues": [
{
"id": "1",
"start": 0,
"end": 2000,
"lines": [
"Hello world.",
"Second line."
],
"style": "Default",
"position": {
"x": 100,
"y": 200,
"align": "center"
}
},
{
"id": "2",
"start": 2500,
"end": 4000,
"lines": [
"Plain line.",
{
"text": "Styled line.",
"tags": [
{
"kind": "italic",
"start": 0,
"end": 6
}
]
}
]
},
{
"id": "3",
"start": 4500,
"end": 6000,
"lines": [
"Roger: I am here."
],
"speaker": "Roger"
}
]
}
Kết quả
start,end,text
00:00:00.000,00:00:02.000,"Hello world.
Second line."
00:00:02.500,00:00:04.000,"Plain line.
<i>Styled</i> line."
00:00:04.500,00:00:06.000,Roger: I am here.
Phần bị mất trong kết quả này: kiểu chữ, vị trí và karaoke. Phần còn lại khớp từng dòng.
Cùng phép chuyển trên một tệp lộn xộn
Đầu vào
[
{ "start": 0, "end": 1000, "lines": ["First."] },
{ "start": 1000, "end": 2000, "text": "Second." },
"not an object",
{ "start": 2000, "end": 3000, "lines": ["Third."], "class": "top" }
]
Kết quả
start,end,text
00:00:00.000,00:00:01.000,First.
00:00:01.000,00:00:02.000,Second.
00:00:02.000,00:00:03.000,Third.
Đây là kiểu hỏng tệp thật thường có — kết thúc dòng lẫn lộn, khoảng trắng thừa, trường bỏ trống. So sánh với ví dụ gọn phía trên để thấy bộ đọc bỏ qua được gì.
Câu hỏi thường gặp
Chữ đậm và in nghiêng trong JSON có sang CSV không?
Mảng `tags` của mỗi dòng và bảng `styles` của tài liệu đều bị bỏ, nên không còn thẻ nào trong ô CSV; chữ đậm hay nghiêng viết trong JSON sẽ ra thành văn bản thuần. Các từ vẫn giữ nguyên.
Vị trí trên màn hình của JSON ra sao khi chuyển sang CSV?
Đối tượng `position` gắn với mỗi cue bị bỏ vì CSV không nói được phụ đề vẽ ở đâu; mọi dòng trở về vị trí mặc định của trình phát, thường là đáy khung hình và căn giữa.
Mốc karaoke trong JSON đi đâu khi sang CSV?
Các span karaoke đánh dấu lúc từng âm tiết sáng lên bị bỏ, còn âm tiết vẫn nằm trong ô text như chữ thường. CSV không có cột nào ghi được một mốc bên trong một dòng.
Kết quả JSON sang CSV trông như thế nào?
Có hàng tiêu đề `start,end,text`, sau đó mỗi cue là một hàng. Mốc thời gian tính bằng mili giây được đổi sang dạng `00:00:04.126` của CSV.
Mốc thời gian của JSON có chính xác trong tệp CSV không?
Có, tới mili giây. JSON ghi `4126` và CSV ghi `00:00:04.126`; không có làm tròn, nên timeline không bị trôi. Dấu phẩy phân tách cột là dữ liệu của bảng tính, không phải dấu câu.
Một cue JSON hai dòng ra sao trong CSV?
Hai phần tử trong mảng `lines` nằm trong cùng một ô text, được đặt trong dấu ngoặc kép theo quy tắc CSV. Cặp dòng vẫn thuộc một cue khi đọc lại.
Các cue JSON có giữ thứ tự trong kết quả CSV không?
Có. Các hàng được sắp theo mốc `start` trước khi ghi, nên thứ tự trong CSV là thứ tự trình phát đọc; nội dung chữ không bị đổi.
Tôi có chuyển ngược CSV về JSON được không?
Được, và chiều CSV sang JSON không mất thêm gì vì CSV giữ ít hơn JSON. Những gì đã mất ở chiều này thì không dựng lại được: kiểu chữ, vị trí và karaoke không được ghi trong CSV.
Kết quả CSV có giữ encoding của tệp JSON không?
Không. CSV xuất ra là UTF-8, kết thúc dòng kiểu Unix và không có BOM. Nếu tệp JSON vào bằng UTF-16 hay bảng mã một byte kiểu Windows, trang sẽ giải mã và báo trong bảng kết quả.