§

Dán mảng JSON bạn muốn chuyển sang CSV.

Dấu phân cách
Cột tiêu đề
Hàng đầu là tiêu đề
Đối tượng lồng
Ép kiểu
§

Output

csv

Chuyển JSON thành CSV là công việc hằng ngày trong làng dữ liệu ở Việt Nam. API trả về mảng JSON và nhóm tài chính, vận hành hay sản phẩm cần mở nó trong Excel hoặc Google Sheets ngay trưa hôm đó. Tổng cục Thống kê GSO xuất các bộ số liệu từ niên giám đến CPI và xuất nhập khẩu dưới dạng CSV mà các đội data tại VNG, MoMo và ZaloPay reshape thành JSON để nạp vào BigQuery hay ClickHouse. Bộ Tài chính và Tổng cục Thuế phát hành báo cáo tài khóa và dữ liệu hóa đơn điện tử ở CSV, còn nhóm tích hợp NAPAS tại các ngân hàng lớn dùng công cụ này để kiểm tra bản đối chiếu trước khi nộp cho Kiểm toán Nhà nước. Công cụ xử lý hoàn toàn cục bộ nên dữ liệu tài chính, y tế hay dân số nhạy cảm không bao giờ rời khỏi máy bạn.

Chuyển đổi JSON sang CSV là gì?

JSON (JavaScript Object Notation, RFC 8259) là định dạng văn bản dạng cây cho dữ liệu có cấu trúc; CSV (Comma-Separated Values, RFC 4180) là định dạng văn bản dạng bảng phẳng. Chuyển JSON sang CSV làm phẳng cây đó thành hàng và cột, giúp một tập dữ liệu xuất phát từ phản hồi API mở được trong bảng tính mà không cần gõ lại một hàng nào.

Chuyển đổi JSON sang CSV hoạt động như thế nào?

Mọi lần chuyển đổi đều chạy cục bộ trong trình duyệt của bạn. Các bước ở mức cao là:

  1. JSON.parse xác thực đầu vào và xác nhận đó là mảng bản ghi ở cấp cao nhất. Một thông báo lỗi rõ ràng xuất hiện nếu dấu ngoặc, dấu phẩy hay khóa có dấu nháy không hợp lệ.
  2. Bộ ghi suy ra các cột tiêu đề từ các bản ghi của bạn — hoặc là hợp của tất cả các khóa đã thấy, hoặc chỉ các khóa từ bản ghi đầu tiên, tùy theo tùy chọn.
  3. Đối tượng lồng được làm phẳng thành khóa dấu chấm (user.id, user.city) hoặc tuần tự hóa thành một ô JSON đơn lẻ, tùy bạn chọn. Mảng bên trong đối tượng được chuỗi hóa JSON trong cả hai chế độ.
  4. Mỗi ô được thoát theo RFC 4180: bất kỳ giá trị nào chứa dấu phân cách, dấu nháy kép hoặc ngắt dòng đều được bao bằng nháy, và dấu nháy bên trong được nhân đôi. Các hàng nối bằng ký tự kết thúc dòng \r\n.
  5. CSV xuất hiện trong ô đầu ra chỉ đọc, và một liên kết tải xuống tạo Blob với kiểu MIME text/csv;charset=utf-8 để bạn lưu tệp bằng một cú nhấp.

Tại sao chuyển JSON sang CSV bằng công cụ này?

  • Quyền riêng tư: mọi lần phân tích, làm phẳng và ghi đều diễn ra trong trình duyệt của bạn. Dữ liệu không bao giờ đến máy chủ của chúng tôi.
  • Đúng đắn: bộ ghi tuân theo RFC 4180. Một giá trị như Bob, Jr. được xuất ra là "Bob, Jr." — một ô có nháy, không phải hai cột — và ngắt dòng hay dấu nháy nhúng đều sống sót qua quá trình chuyển đổi.
  • Sẵn sàng cho bảng tính: đầu ra dán thẳng vào Excel hoặc Google Sheets, với cột tiêu đề đã được suy ra từ khóa của bạn, nên không cần dọn dẹp thủ công trước khi dữ liệu dùng được.
  • Linh hoạt: làm phẳng đối tượng lồng thành khóa dấu chấm hoặc chuỗi hóa thành một ô, chọn bất kỳ dấu phân cách nào cho phương ngữ CSV không phải dấu phẩy, và chọn tiêu đề từ tất cả khóa hay chỉ bản ghi đầu tiên.

Các ứng dụng phổ biến của chuyển đổi JSON sang CSV là gì?

Việc làm phẳng JSON thành CSV xuất hiện ở nhiều mảng công việc dữ liệu và tooling:

  • Xuất dữ liệu: biến phản hồi API thành tệp CSV mà nhóm tài chính, vận hành hoặc sản phẩm có thể mở trong Excel hoặc Google Sheets mà không cần viết mã.
  • Báo cáo: đưa kết quả truy vấn JSON vào bảng tính để tạo pivot table, biểu đồ hoặc cột công thức nhanh. Loại công việc này rất khó khi làm trực tiếp trên JSON thô.
  • Xem xét bảng tính: làm phẳng cấu hình JSON lồng (cài đặt, feature flag, biến thể A/B) thành CSV để người không kỹ thuật có thể đọc và chỉnh sửa từng ô.

Ví dụ chuyển JSON sang CSV trông như thế nào?

Dán [{"name":"Alice","age":30},{"name":"Bob, Jr.","age":25}], để dấu phân cách là dấu phẩy và nhấn CONVERT. Bạn nhận được ba dòng: một hàng tiêu đề name,age, một hàng dữ liệu Alice,30 và một hàng "Bob, Jr.",25. Dấu phẩy nhúng đó chính là thứ gây lỗi cho phép nối ngây thơ — ở đây nó kích hoạt cơ chế nháy của RFC 4180, giữ nguyên ô.

Công cụ chuyển JSON sang CSV này có chạy hoàn toàn trong trình duyệt của tôi không?

Có. Mọi lần phân tích, làm phẳng và ghi đều chạy cục bộ dưới dạng JavaScript trong tab trình duyệt của bạn. Công cụ không hề gọi fetch, XMLHttpRequest hay navigator.sendBeacon — các payload JSON của bạn không bao giờ đến máy chủ của chúng tôi, một bộ chuyển đổi bên thứ ba hay bất kỳ pipeline phân tích nào. Công cụ cũng hoạt động ngoại tuyến sau khi trang đã tải, vì đây là một gói HTML/CSS/JS tĩnh không phụ thuộc API lúc chạy.

Kích thước đầu vào tối đa mà bộ chuyển đổi này có thể xử lý là bao nhiêu?

Công cụ đệm toàn bộ đầu vào trong bộ nhớ và chạy đồng bộ trên luồng chính, nên giới hạn thực tế phụ thuộc vào thiết bị của bạn. Mảng JSON lên tới khoảng 10 MB (xấp xỉ 100.000 bản ghi điển hình) làm phẳng thành CSV mà không có khựng đáng kể trên một laptop hiện đại. Vượt mức đó, UI có thể bị đứng trong khi bộ ghi chạy. Chuyển đổi theo luồng dùng Web Worker cộng với bộ ghi chia khối là bước tiếp theo đã được lên kế hoạch — hiện tại, hãy chia nhỏ tập dữ liệu rất lớn trước khi dán vào.

Bộ ghi xử lý các giá trị có dấu phẩy, dấu nháy hoặc ngắt dòng như thế nào?

Theo RFC 4180. Bất kỳ giá trị nào chứa dấu phân cách đang dùng, dấu nháy kép, CR hay LF đều được bao bằng dấu nháy kép, và dấu nháy bên trong được nhân đôi. Vì vậy một tên như Bob, Jr. trở thành ô đơn "Bob, Jr." thay vì tràn sang hai cột, và mô tả nhiều dòng nằm trong một ô thay vì phá vỡ hàng. Đây là phần mà join(',') ngây thơ làm sai.

Chuyện gì xảy ra với đối tượng JSON lồng khi chuyển sang CSV?

Đối tượng lồng được xử lý theo công tắc Đối tượng lồng. Trong chế độ Làm phẳng (mặc định), các khóa được nối bằng dấu chấm — {"user":{"id":1,"city":"Paris"}} trở thành các cột user.iduser.city. Trong chế độ Chuỗi hóa, đối tượng lồng được tuần tự hóa thành một giá trị ô JSON đơn lẻ với cơ chế thoát nháy RFC 4180 được giữ nguyên, bảo toàn cấu trúc cho round-trip. Mảng bên trong đối tượng được chuỗi hóa JSON trong cả hai chế độ.

Đầu ra CSV có thể dùng những dấu phân cách nào?

Bốn loại: dấu phẩy (,, mặc định RFC 4180), dấu chấm phẩy (;, phổ biến ở các locale châu Âu), tab (\t, phương ngữ TSV) và sổ dọc (|). Chọn loại mà công cụ xuôi dòng của bạn mong đợi. Bộ ghi thoát bất kỳ ô nào chứa dấu phân cách đã chọn, nên lựa chọn này không bao giờ làm hỏng giá trị.

Công cụ chuyển JSON sang CSV này làm phẳng mảng của bạn và phát ra kết quả tuân thủ RFC 4180 mà bạn có thể dán thẳng vào bảng tính, báo cáo hoặc bản review code, mà không tải lên một byte nào. Cần chiều ngược lại? Công cụ chuyển CSV sang JSON phân tích theo hướng kia.