🔧Toolify

Chuyển đổi CSV ↔ JSON (tuân thủ RFC 4180)

Dán CSV hoặc JSON. Bộ chuyển đổi phân tích CSV tuân thủ RFC 4180 (xử lý trường được trích dẫn với dấu phẩy, dấu ngoặc kép được thoát, giá trị nhiều dòng). Đối với JSON sang CSV, chấp nhận cả mảng đối tượng (dùng khóa làm tiêu đề) và mảng mảng.

Đầu ra
[
  {
    "name": "Alice",
    "age": "30",
    "city": "Tokyo"
  },
  {
    "name": "Bob",
    "age": "25",
    "city": "Seoul"
  },
  {
    "name": "Carol",
    "age": "42",
    "city": "Madrid"
  }
]

Cách hoạt động

Tại sao RFC 4180 quan trọng

CSV trông đơn giản nhưng có các trường hợp đặc biệt: một trường chứa dấu phẩy phải được trích dẫn; một trường chứa dấu ngoặc kép phải thoát nó dưới dạng dấu ngoặc kép nhân đôi; một trường có thể chứa ngắt dòng nếu được trích dẫn. Các trình phân tích tách-theo-dấu-phẩy đơn giản không hoạt động với dữ liệu thực tế. Bộ chuyển đổi này triển khai chính xác ngữ pháp RFC 4180.

Các trình phân tích đơn giản cũng không hoạt động với các xuất Excel sử dụng chấm phẩy (phổ biến ở các locale châu Âu nơi ',' là dấu phân cách thập phân) hoặc tab (TSV). Danh sách thả xuống dấu phân cách xử lý cả bốn biến thể phổ biến.

Hình dạng JSON cho đầu ra

Mảng đối tượng (mặc định với hàng tiêu đề): mỗi hàng trở thành {cột: giá_trị}. Hình dạng JSON phổ biến nhất, dễ sử dụng trong bất kỳ ngôn ngữ nào.

Mảng mảng (hàng tiêu đề tắt): mỗi hàng trở thành [v1, v2, ...]. Hữu ích khi các cột không được đặt tên hoặc bạn muốn cấu trúc theo vị trí.

Khi chuyển JSON sang CSV, bộ chuyển đổi phát hiện hình dạng bạn có. Đối tượng: trích xuất các khóa duy nhất trên tất cả các hàng cho tiêu đề. Mảng: ghi hàng nguyên trạng.

Các lỗi phổ biến

Locale Excel: trong một số cài đặt Excel châu Âu, dấu phân cách mặc định là ';' không phải ','. Nếu CSV của bạn trông như một cột khổng lồ khi được nhập, chuyển sang ; trong danh sách thả xuống dấu phân cách.

BOM (Byte Order Mark): một số xuất Excel thêm tiền tố tệp với U+FEFF. Chúng tôi truyền nó qua; nếu trình phân tích xuôi dòng của bạn gặp lỗi, hãy loại bỏ 3 byte đầu tiên.

Dòng mới cuối: CSV kết thúc bằng '\n' thêm hàng trống cuối cùng trong một số trình phân tích; chúng tôi tự động lọc các hàng trống.

Số dưới dạng chuỗi: CSV không có kiểu — '42' trở thành chuỗi "42" trong JSON. Nếu bạn cần giá trị có kiểu, chạy bước xử lý sau ép các cột số đã biết.

Câu hỏi thường gặp

Công cụ này có xử lý trường được trích dẫn có dấu phẩy không?

Có — trích dẫn RFC 4180 được hỗ trợ đầy đủ. "Nguyễn, Văn A" được phân tích như một trường duy nhất.

Dấu ngoặc kép được thoát xử lý như thế nào?

Theo RFC 4180, một '"' theo nghĩa đen bên trong trường được trích dẫn được viết là '""' (hai dấu ngoặc kép). Trình phân tích xử lý điều này chính xác.

Các trường có thể chứa ngắt dòng không?

Có, khi được trích dẫn. "dòng 1\ndòng 2" bên trong dấu ngoặc kép được coi là một trường với ngắt dòng nhúng.

Công cụ này có hỗ trợ BOM (UTF-8) không?

BOM đi qua. Nếu người dùng xuôi dòng của bạn không chịu được nó, hãy loại bỏ 3 byte đầu tiên (EF BB BF) khỏi CSV.

Còn tệp lớn thì sao?

Trình duyệt xử lý vài MB mà không có vấn đề. Đối với CSV rất lớn (100MB+), dùng trình phân tích phát trực tiếp như Papa Parse với worker, hoặc công cụ CLI.

Số có được giữ nguyên là số không?

CSV → JSON: tất cả giá trị trở thành chuỗi (CSV không có kiểu). JSON → CSV: số trở thành ô CSV không được trích dẫn. Để lấy JSON có kiểu, xử lý sau các cột bạn biết là số.

Tại sao JSON của tôi hiển thị chuỗi rỗng thay vì null?

CSV biểu diễn giá trị thiếu là ô trống. Chúng tôi ánh xạ chúng thành chuỗi rỗng. Để lấy null trong JSON, xử lý sau đầu ra.

Dữ liệu có rời khỏi trình duyệt không?

Không. Chuyển đổi chạy cục bộ; không có gì được gửi lên máy chủ.

Công cụ liên quan

Cập nhật lần cuối:

Thử AI prompts của chúng tôi →