Cách chuyển CSV sang JSON

· 3 phút đọc

CSV (giá trị được phân tách bằng dấu phẩy) là định dạng đơn giản nhất cho dữ liệu dạng bảng — mọi bảng tính đều có thể xuất nó. JSON (JavaScript Object Notation) là định dạng tiêu chuẩn cho các API web và ứng dụng hiện đại. Chuyển đổi giữa hai định dạng là một trong những nhiệm vụ dữ liệu phổ biến nhất trong phát triển.

Khi nào cần chuyển CSV sang JSON

Cách CSV trở thành JSON

Một tệp CSV:

name,age,city
Alice,30,New York
Bob,25,London

Trở thành một mảng JSON các đối tượng:

[
  {"name": "Alice", "age": "30", "city": "New York"},
  {"name": "Bob", "age": "25", "city": "London"}
]

Dòng đầu tiên (tiêu đề) trở thành các khóa. Mỗi dòng tiếp theo trở thành một đối tượng.

Cách chuyển đổi

  1. Dán dữ liệu CSV của bạn — nhập dữ liệu được phân tách bằng dấu phẩy với một dòng tiêu đề.
  2. Chọn dấu phân cách của bạn — dấu phẩy, dấu chấm phẩy, tab hoặc dấu gạch đứng. Công cụ tự động phát hiện trong hầu hết các trường hợp.
  3. Sao chép hoặc tải xuống — xem lại đầu ra JSON và sao chép nó vào bộ nhớ tạm hoặc tải xuống dưới dạng tệp .json.

Xử lý CSV phức tạp

Giá trị có dấu nháy — khi một giá trị chứa ký tự dấu phân cách (như một địa chỉ có dấu phẩy), nó phải được bao quanh bởi dấu nháy kép: "New York, NY". Các trình chuyển đổi tốt xử lý điều này một cách chính xác.

Giá trị trống — các ô trống trở thành chuỗi trống trong JSON ("field": ""). Nếu bạn muốn null, bạn sẽ phải xử lý sau đầu ra.

Giá trị số — CSV không có kiểu. Mọi thứ đều là văn bản. Đầu ra JSON sẽ có các số ở dạng chuỗi ("30", không phải 30). Nếu ứng dụng của bạn cần số thực, hãy phân tích chúng sau khi chuyển đổi.

Dấu xuống dòng trong giá trị — một số CSV chứa các giá trị nhiều dòng (được bao quanh bởi dấu nháy). Không phải tất cả các trình chuyển đổi đều xử lý chúng — kiểm tra với dữ liệu của bạn.

Mẹo

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

Điều gì xảy ra với dòng tiêu đề?

Dòng đầu tiên được sử dụng làm khóa cho các đối tượng JSON. Mỗi dòng tiếp theo trở thành một đối tượng với các khóa đó. Ví dụ, một tiêu đề « name,age » với một dòng « Alice,30 » trở thành {"name":"Alice","age":"30"}.

Những dấu phân cách nào được hỗ trợ?

Dấu phẩy, dấu chấm phẩy, tab và dấu gạch đứng đều được hỗ trợ. Công cụ có thể tự động phát hiện dấu phân cách hoặc bạn có thể chọn nó thủ công.

Nó có xử lý dấu phẩy bên trong các giá trị không?

Có. Các giá trị được bao quanh bởi dấu nháy kép (như « New York, NY ») được xử lý một cách chính xác — dấu phẩy bên trong dấu nháy được coi là một phần của giá trị, không phải là dấu phân cách.

Dữ liệu của tôi có được gửi đến máy chủ không?

Không. Tất cả việc chuyển đổi diễn ra trong trình duyệt của bạn. Dữ liệu của bạn không bao giờ rời khỏi thiết bị của bạn.