Công Cụ Chuyển Đổi CSV Sang JSON
Dán CSV và nhận một mảng JSON gồm các đối tượng được khóa theo hàng tiêu đề, hoặc một mảng các mảng nếu không có tiêu đề. Đổi hướng để chuyển một mảng JSON gồm các đối tượng phẳng trở lại thành CSV. Dấu phẩy trong trích dẫn, dấu ngoặc kép lặp và ngắt dòng bên trong trường được đọc đúng, và việc chuyển đổi chạy trong trình duyệt của bạn. Miễn phí, không cần đăng ký.
Hướng
Cách Sử Dụng Công Cụ Chuyển Đổi CSV Sang JSON
- 1. Chọn hướng. CSV → JSON là mặc định; JSON → CSV cần một mảng JSON gồm các đối tượng phẳng.
- 2. Đặt tùy chọn. Ký tự phân cách có thể tự động nhận diện, hoặc cố định là dấu phẩy, dấu chấm phẩy hoặc tab; với JSON → CSV, Tự động phát hiện sẽ dùng dấu phẩy. Với CSV → JSON, bạn cũng chọn thụt lề 2 khoảng trắng, 4 khoảng trắng hoặc tab, và việc hàng đầu tiên có chứa tiêu đề hay không.
- 3. Dán và chuyển đổi. Nhấn Chuyển Đổi. Các vấn đề — dấu ngoặc kép chưa đóng, JSON không hợp lệ, hoặc một mảng không gồm các đối tượng — sẽ hiện thành thông báo thay vì kết quả.
- 4. Sao chép hoặc tải xuống. Sao Chép Kết Quả sao chép đầu ra; nút tải xuống lưu nó thành
data.jsonhoặcdata.csv.
Cách Đọc CSV
CSV trông đơn giản nhưng không hẳn vậy: cùng một tệp có thể dùng dấu phẩy, dấu chấm phẩy hoặc tab, và một trường có thể chứa chính ký tự phân tách các trường. Đặc tả gần nhất là RFC 4180, mang tính thông tin chứ không phải tiêu chuẩn. Nó quy định một trường chứa dấu phẩy, dấu ngoặc kép hoặc ngắt dòng phải được bao trong dấu ngoặc kép, và dấu ngoặc kép bên trong trường như vậy được viết thành hai. Công cụ tuân theo các quy tắc đó và thêm một chút linh hoạt:
- Trường có trích dẫn. Một trường bắt đầu bằng dấu ngoặc kép kéo dài đến dấu ngoặc đóng, nên có thể chứa ký tự phân cách, ngắt dòng và
""cho một dấu ngoặc kép thật. Dấu ngoặc không bao giờ đóng sẽ dừng việc chuyển đổi và báo dòng nơi nó bắt đầu. - Kết thúc dòng. LF, CRLF và CR đơn đều kết thúc một hàng, và các dòng trống bị bỏ qua.
- Nhận diện ký tự phân cách. Ở chế độ tự động, công cụ chỉ xem dòng đầu tiên và chọn ký tự nào trong dấu phẩy, dấu chấm phẩy hoặc tab xuất hiện nhiều nhất; hòa thì dấu phẩy thắng. Nếu dòng đầu tiên của tệp bất thường — ví dụ chỉ có một cột, hoặc là một dòng tiêu đề — hãy tự chọn ký tự phân cách. Bản thân RFC 4180 chỉ biết dấu phẩy; dấu chấm phẩy phổ biến trong các tệp xuất từ bảng tính đặt theo vùng châu Âu.
- Mọi thứ đều là văn bản. Công cụ không đoán kiểu dữ liệu, nên
2020thành chuỗi"2020", không phải số, và một ô trống thành"", không phải null. Hãy chuyển kiểu sau đó nếu mã của bạn cần.
Ví Dụ Minh Họa
Tiêu đề
name,note,year
Hàng 1
"Smith, Jane","Said ""hello""",2020
Hàng 2
Lee,short
Kết quả
Hai đối tượng. Smith, Jane có ghi chú Said "hello" và năm "2020"; Lee có ghi chú short và năm "".
Dấu phẩy trong Smith, Jane vẫn nằm trong một trường nhờ dấu ngoặc kép, và dấu ngoặc kép lặp thu gọn thành một. Hàng của Lee thiếu một ô, nên năm bị thiếu thành chuỗi rỗng; một hàng có nhiều ô hơn sẽ mất phần thừa, vì không có tiêu đề để đặt tên cho chúng. Bỏ chọn Hàng đầu tiên là tiêu đề thì cùng đầu vào trở thành một mảng các mảng — [["name","note","year"],…] — với các hàng ngắn vẫn ngắn.
Tên cột trùng nhau sẽ xung đột: với hai cột cùng tên id, cột sau thắng và cột trước bị mất, nên hãy đổi tên một cột trước.
Quay Lại: JSON Sang CSV
Chiều ngược lại yêu cầu một mảng ở cấp cao nhất mà mọi mục đều là đối tượng. Hàng tiêu đề là hợp của mọi khóa theo thứ tự xuất hiện đầu tiên, nên các đối tượng có khóa khác nhau vẫn thẳng hàng, và giá trị thiếu được để trống. Số và boolean được ghi đúng như chúng xuất hiện, null thành ô trống, và mọi mảng hoặc đối tượng lồng nhau được ghi vào ô của nó dưới dạng văn bản JSON và được đặt trong dấu ngoặc kép. Nếu dữ liệu của bạn lồng nhau, hãy làm phẳng nó trước. Các ô chứa ký tự phân cách, dấu ngoặc kép hoặc ngắt dòng được đặt trong dấu ngoặc kép, với dấu ngoặc kép được nhân đôi, và các hàng được nối bằng ký tự xuống dòng LF thuần.
Áp dụng cho [{"name":"Smith, Jane","year":2020,"tags":["a","b"]},{"name":"Doe","note":"two\nlines","year":null}], công cụ ghi tiêu đề name,year,tags,note, một hàng đầu tiên là "Smith, Jane", 2020 và văn bản trong ngoặc kép ["a","b"], và một hàng thứ hai cho Doe với năm và tags để trống, còn note là văn bản hai dòng được đặt trong ngoặc kép.
Bạn Cần Công Cụ Nào?
| Bạn muốn | Hãy dùng |
|---|---|
| Chuyển đổi giữa CSV và một mảng JSON | Trang này |
| Xem CSV dưới dạng bảng để sao chép HTML | CSV Sang Bảng |
| Tạo bảng Markdown từ CSV | Công Cụ Tạo Bảng Markdown |
| Chỉ giữ một số cột của CSV | Column Extractor |
| Kiểm tra hoặc định dạng lại chính JSON | Công Cụ Định Dạng JSON |
| Chuyển YAML hoặc XML sang và từ JSON | YAML to JSON, XML to JSON |
| Dàn chữ bảng CSV cho một bài báo | LaTeX Table Generator, APA Table Generator |
Câu Hỏi Thường Gặp
- Làm thế nào để chuyển CSV sang JSON?
- Dán CSV vào ô nhập, giữ CSV → JSON được chọn và nhấn Chuyển Đổi. Khi Hàng đầu tiên là tiêu đề được tick, bạn nhận một mảng các đối tượng được khóa theo tên tiêu đề; không tick thì nhận một mảng các mảng. Sao chép kết quả hoặc tải về dưới dạng data.json.
- Công cụ có xử lý các trường có trích dẫn chứa dấu phẩy hoặc ngắt dòng không?
- Có. Một trường được bọc trong dấu ngoặc kép có thể chứa ký tự phân cách, ngắt dòng và dấu ngoặc kép lặp, như RFC 4180 mô tả. Dấu ngoặc mở mà không có dấu đóng sẽ dừng việc chuyển đổi và nêu dòng nơi trường bắt đầu.
- Những ký tự phân cách nào được hỗ trợ?
- Dấu phẩy, dấu chấm phẩy và tab, hoặc được tự động nhận diện từ dòng đầu tiên hoặc do bạn chọn bằng tay. Ký tự phân cách bằng dấu gạch đứng và các ký tự khác không được hỗ trợ; một công cụ trích cột hoặc thao tác tìm và thay thế có thể đổi chúng thành dấu phẩy trước.
- Tại sao số trong JSON của tôi là chuỗi?
- CSV không có kiểu dữ liệu, và công cụ không đoán chúng, nên mọi giá trị đều thành chuỗi và ô trống thành chuỗi rỗng. Điều đó giữ nguyên các giá trị như
007hoặc1e5đúng như đã viết; hãy chuyển kiểu trong mã của bạn ở những chỗ cần số. - JSON sang CSV hoạt động như thế nào?
- Nó cần một mảng JSON gồm các đối tượng. Mỗi đối tượng thành một hàng, các cột là mọi khóa xuất hiện ở bất kỳ đâu, và đối tượng hoặc mảng lồng nhau được ghi vào ô dưới dạng văn bản JSON. JSON không hợp lệ được báo lỗi kèm số dòng khi bộ phân tích cú pháp của trình duyệt cung cấp vị trí.
- Tại sao CSV của tôi mở sai trong Excel sau khi chuyển đổi?
- Tệp là UTF-8 thuần không có dấu thứ tự byte và dùng ký tự phân cách bạn đã chọn, nên Excel ở vùng dùng dấu chấm phẩy có thể dồn mọi thứ vào một cột, và các ký tự không phải tiếng Anh có thể cần đặt trình nhập liệu thành UTF-8. Chọn dấu chấm phẩy làm ký tự phân cách thường sửa được vấn đề đầu tiên.
- Dữ liệu của tôi có được tải lên đâu không?
- Không. Cả hai chiều đều chạy trong trình duyệt, và văn bản bạn dán không được gửi đến CitationEasy. Tệp tải xuống được tạo cục bộ.