tooly

Chuyển CSV sang JSON online

Dán dữ liệu CSV xuất ra để nhận mảng object JSON sẵn sàng cho API, script hoặc tệp cấu hình — ký tự phân tách được nhận diện tự động, không tải lên.

Mọi thứ chạy trong trình duyệt — không gửi đi đâu cả

Cách sử dụng

  1. 1

    Dán CSV của bạn — hàng đầu tiên phải là tiêu đề.

  2. 2

    Giữ bật “nhận diện số và boolean” trừ khi bạn muốn mọi giá trị ở dạng chuỗi.

  3. 3

    Sao chép JSON hoặc tải về dưới dạng tệp.

Vì sao cần biến bảng tính thành JSON

CSV là thứ mà bảng tính, CRM, ngân hàng và bảng điều khiển phân tích xuất ra. JSON là thứ mà API web, mã JavaScript, cơ sở dữ liệu NoSQL và phần lớn hệ thống cấu hình tiêu thụ. Việc chuyển đổi này xuất hiện liên tục: nạp dữ liệu cho cơ sở dữ liệu thử nghiệm từ một bảng tính đồng nghiệp đang quản lý, biến danh sách sản phẩm thành dữ liệu mẫu cho một bản prototype front-end, đưa danh sách chuyển hướng hoặc bản dịch vào script build, hoặc gửi một loạt bản ghi đến API chỉ nhận JSON.

Đầu ra ở đây là một mảng JSON với mỗi hàng dữ liệu là một object. Hàng tiêu đề cung cấp tên thuộc tính, nên một bảng tính có các cột sku, title và price sẽ trở thành các object có đúng ba khóa đó, sẵn sàng để duyệt vòng lặp.

Bộ phân tích đọc CSV của bạn như thế nào

CSV trông đơn giản cho đến khi một giá trị chứa ký tự phân tách. Bộ phân tích tuân theo quy tắc của RFC 4180, thứ gần nhất với một tiêu chuẩn mà CSV có:

  • Một trường bọc trong dấu nháy kép có thể chứa ký tự phân tách, xuống dòng và dấu nháy. "Smith, John" vẫn là một giá trị.
  • Dấu nháy bên trong trường có nháy được viết hai lần: "6"" pipe" trở thành 6" pipe.
  • Dòng có thể kết thúc bằng CRLF kiểu Windows hoặc LF kiểu Unix; cả hai đều được xử lý.
  • Ký tự BOM ở đầu tệp, mà Excel thêm vào khi lưu dạng CSV UTF-8, được loại bỏ để không bị dính vào tên cột đầu tiên.
  • Các dòng hoàn toàn trống bị bỏ qua.

Ký tự phân tách được chọn bằng cách đếm dấu phẩy, chấm phẩy, tab và pipe ở dòng đầu tiên rồi chọn ký tự xuất hiện nhiều nhất. Cách này đúng với gần như mọi tệp xuất, nhưng nó dựa vào việc dòng tiêu đề mang tính đại diện. Nếu tiêu đề chỉ có một cột không có ký tự phân tách, dấu phẩy được mặc định.

Dấu cách quanh tên tiêu đề được cắt bỏ, nên price trở thành khóa price. Giá trị trong các hàng dữ liệu được giữ đúng như đã viết, kể cả dấu cách ở đầu hoặc cuối.

Giá trị có kiểu và chuỗi

Khi bật "Nhận diện số và boolean", mỗi ô được kiểm tra theo một danh sách quy tắc ngắn:

  • Số nguyên và số thập phân thuần như 42, -7 và 19.99 trở thành số JSON, miễn là có tối đa 15 chữ số.
  • Chính xác true và false, viết thường, trở thành boolean. TRUE, Yes hay 1 giữ nguyên.
  • Ô trống trở thành null.
  • Mọi thứ khác, bao gồm chuỗi chữ số dài hơn, 1.5e3, +5, .5, 1,234 và ngày tháng, vẫn là chuỗi.

Điều này tiện lợi cho phần lớn dữ liệu, nhưng số trong JSON không mang định dạng, nên một số giá trị đổi nghĩa khi được gán kiểu:

  • Số 0 ở đầu biến mất. Mã ZIP của Mỹ 02134 trở thành 2134, và mã hàng 007 trở thành 7.
  • Chuỗi chữ số dài sẽ mất độ chính xác. Số trong JavaScript chỉ chính xác đến khoảng 15 chữ số có nghĩa, nên các giá trị nhiều chữ số hơn, như mã đơn hàng 20 chữ số hay số thẻ, được giữ ở dạng chuỗi thay vì bị làm tròn.
  • Số điện thoại không có dấu cộng hay dấu cách cũng trở thành số.

Nếu có cột nào chứa mã định danh thay vì số lượng, hãy tắt tùy chọn và tự chuyển những trường thật sự là số trong mã của bạn. Khi tắt tùy chọn, ô trống trở thành chuỗi rỗng thay vì null.

Khi kết quả trông không đúng

  • Mọi thứ dồn vào một khóa. Ký tự phân tách không được nhận diện, thường do tiêu đề dùng ký tự phân tách khác với dữ liệu, hoặc không có ký tự phân tách nào. Hãy kiểm tra dòng đầu tiên.
  • Giá trị bị lệch một cột. Một trường chứa ký tự phân tách nhưng không được đặt trong dấu nháy. Hãy xuất lại từ ứng dụng nguồn thay vì sửa tay; bảng tính tự động đặt các trường như vậy trong dấu nháy.
  • Cột thừa biến mất. Khóa chỉ lấy từ tiêu đề, nên các ô nằm sau cột tiêu đề cuối cùng bị bỏ. Hàng có ít ô hơn nhận null hoặc chuỗi rỗng cho các ô thiếu.
  • Hai cột, một khóa. Nếu tiêu đề lặp lại một tên, cột sau ghi đè cột trước trong mọi object. Hãy đổi tên một trong hai trước.
  • Ký tự lạ như é. Tệp được lưu bằng bảng mã cũ. Hãy lưu lại dưới dạng CSV UTF-8 và dán lại một lần nữa.

Làm việc với kết quả

JSON được in với thụt lề 2 dấu cách, phù hợp để đọc và commit vào repository. Để rút gọn cho một request API hoặc thụt lề lại, hãy đưa nó qua định dạng JSON. Để đi theo chiều ngược lại sau khi chỉnh sửa, chuyển JSON sang CSV dựng lại bảng tính từ mảng. Việc chuyển đổi chạy hoàn toàn trong trang, điều quan trọng khi tệp xuất chứa tên khách hàng, email hoặc lương.

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

Những ký tự phân tách nào được hỗ trợ?

Dấu phẩy, chấm phẩy, tab và pipe được tự động nhận diện từ dòng đầu tiên.

Trường có dấu nháy có được xử lý không?

Có — dấu nháy, dấu phẩy nằm trong trường, xuống dòng trong dấu nháy và dấu nháy kép đều tuân theo RFC 4180.

“Nhận diện số và boolean” làm gì?

“42” trở thành 42, “true” trở thành true và ô trống trở thành null. Chuỗi chữ số dài hơn 15 chữ số được giữ ở dạng chuỗi để không sai lệch giá trị. Tắt tùy chọn này để giữ mọi thứ ở dạng chuỗi, ví dụ mã bưu điện có số 0 ở đầu.

Dữ liệu của tôi có bị tải lên không?

Không. Việc phân tích diễn ra trong trình duyệt của bạn.

Tôi có thể chuyển tệp Excel không?

Hãy lưu sheet dưới dạng CSV trước (File → Save as → CSV UTF-8), rồi dán vào đây.

Công cụ liên quan