Bộ chuyển đổi JSON sang CSV

Chuyển đổi JSON sang CSV trực tuyến — miễn phí, tức thì và riêng tư. Tệp của bạn được xử lý ngay trong trình duyệt, tuyệt đối không tải lên máy chủ.

Dấu phân cách CSV
Kết quả

Các tệp đã chuyển đổi và bản xem trước sẽ xuất hiện ở đây.

Sẵn sàng. Hãy chọn một tệp bảng để chuyển đổi.

Nguyên lý chuyển đổi

  • Một mảng các đối tượng sẽ được chuyển thành các hàng và cột; các đối tượng lồng nhau sẽ được làm phẳng thành các cột có khóa dạng dấu chấm, ví dụ: address.city.
  • Chọn ký tự phân tách phù hợp với dữ liệu của bạn — dấu phẩy, dấu chấm phẩy hoặc tab.

Tệp bảng của bạn được chuyển đổi trực tiếp trong trình duyệt. Không có dữ liệu nào được tải lên BroBroGo.

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

Làm cách nào để chuyển đổi JSON sang CSV?

Thả tệp JSON của bạn vào và nhấp vào chuyển đổi — tệp CSV sẽ sẵn sàng để tải xuống trong vài giây, đi kèm với bản xem trước kết quả. Mọi quy trình đều chạy trực tiếp trên thiết bị của bạn.

Tôi có thể chuyển đổi tệp có dung lượng tối đa là bao nhiêu?

Hỗ trợ tối đa 8 MB, 10.000 hàng và 200 cột cho mỗi tệp. Với các tập dữ liệu lớn hơn, tốt nhất bạn nên chia nhỏ chúng thành các tệp nhỏ trước khi thực hiện.

Làm phẳng JSON thành CSV: Sự khác biệt cốt lõi của công cụ này

Công cụ chuyển đổi JSON sang CSV trên trang này không đơn thuần là thay đổi phần mở rộng tập tin. Nó thực hiện một phép biến đổi cấu trúc sâu: làm phẳng (flatten) một định dạng dữ liệu có phân cấp và kiểu (JSON) thành một bảng phẳng không có kiểu (CSV). JSON hỗ trợ đối tượng, mảng, số, boolean và null trong các cấu trúc lồng nhau, trong khi CSV chỉ có các ô dạng chuỗi, không có lồng ghép, không có sheet hay kiểu dữ liệu. Mọi thông tin về kiểu, cấu trúc lồng nhau, định dạng đều bị mất trong quá trình chuyển đổi.

Điểm khác biệt then chốt so với các chuyển đổi khác (ví dụ CSV sang Excel hay Excel sang JSON) là hướng chuyển đổi này buộc phải quyết định cách biểu diễn các trường lồng nhau trong một bảng phẳng. Công cụ sử dụng ký pháp đường dẫn dấu chấm (dot‑path notation), ví dụ address.city cho trường city nằm trong đối tượng address. Tất cả xử lý đều diễn ra trong trình duyệt của bạn – không có dữ liệu nào được tải lên máy chủ. Điều này mang lại lợi thế bảo mật rõ rệt cho các quy trình làm việc nhạy cảm với quyền riêng tư.

Đầu vào và đầu ra: Cách công cụ hoạt động

Định dạng đầu vào

Công cụ chấp nhận một tập tin JSON duy nhất. Mặc dù giao diện cũng chấp nhận các định dạng CSV và XLSX, nhưng ở đây chúng ta chỉ tập trung vào JSON. Tập tin JSON phải có cấu trúc dạng bảng (table‑shaped) – nghĩa là một mảng các đối tượng hoặc một mảng các mảng. Nếu JSON không hợp lệ hoặc không có dạng bảng, công cụ sẽ hiển thị lỗi: "This JSON is invalid or not table‑shaped."

Định dạng đầu ra và các tùy chọn

Người dùng chọn đầu ra là CSV (Comma‑Separated Values) và chọn một trong ba dấu phân cách:

Dấu phân cách Ký tự Trường hợp sử dụng điển hình
Comma , Mặc định cho miền địa phương tiếng Anh
Semicolon ; Miền địa phương châu Âu (ví dụ Đức, Pháp) – nơi dấu phẩy dùng làm dấu thập phân
Tab \t Khi dữ liệu chứa nhiều dấu phẩy hoặc dấu chấm phẩy, tránh xung đột

Sau khi chọn dấu phân cách, công cụ:

  1. Đọc và phân tích JSON.
  2. Xác định cấu trúc bảng (cột từ khóa đối tượng hoặc chỉ mục mảng).
  3. Làm phẳng các đối tượng lồng nhau thành các cột với tên đường dẫn dấu chấm.
  4. Áp dụng quy tắc trích dẫn CSV tự động (giá trị chứa dấu phân cách, xuống dòng hoặc dấu ngoặc kép sẽ được bọc trong dấu ngoặc kép).
  5. Hiển thị bảng xem trước.
  6. Cho phép tải tập tin CSV xuống.

Đầu ra hiển thị

Người dùng nhìn thấy:

  • Bảng xem trước dữ liệu đã chuyển đổi.
  • Số hàng và số cột.
  • Kích thước tập tin đầu ra.

Quy tắc bảng tính: Cách xử lý cấu trúc JSON lồng ghép

Để chuyển JSON thành CSV, công cụ phải giải mã cấu trúc phân cấp thành các hàng và cột. Có hai trường hợp chính:

Mảng các đối tượng (Array of Objects)

Giả sử JSON đầu vào:

[
  { "name": "Nguyen", "address": { "city": "Hanoi", "zip": 10000 } },
  { "name": "Tran", "address": { "city": "HCMC", "zip": 70000 } }
]

Mỗi đối tượng trở thành một hàng. Các khóa của đối tượng gốc (name, address) trở thành tên cột. Với address là một đối tượng lồng nhau, công cụ làm phẳng nó thành các cột address.cityaddress.zip. Kết quả CSV (với dấu phẩy) sẽ là:

name,address.city,address.zip
Nguyen,Hanoi,10000
Tran,HCMC,70000

Mảng các mảng (Array of Arrays)

Nếu JSON có dạng:

[,
]

Mỗi mảng con trở thành một hàng, các phần tử trở thành cột theo chỉ mục. Không có tên cột từ khóa đối tượng – các cột thường được đặt tên mặc định (cột 0, cột 1, cột 2) hoặc để trống.

Trường hợp đặc biệt: Mảng lồng nhau bên trong đối tượng

Nếu một trường trong đối tượng là mảng, công cụ sẽ giữ nguyên mảng đó trong một ô CSV, nhưng phải tuân thủ quy tắc trích dẫn. Ví dụ: {"tags": ["json", "csv"]} sẽ trở thành ô ["json", "csv"] được trích dẫn trong CSV. Tuy nhiên, kiểu mảng này khó phân tích cú pháp khi đọc lại từ CSV.

Mất mát kiểu dữ liệu và các cạnh bẫy thường gặp

CSV không có khái niệm kiểu dữ liệu. Mọi giá trị từ JSON đều được chuyển thành chuỗi. Điều này dẫn đến một số vấn đề thực tế:

Số, boolean và null

  • Số: Ví dụ 10000 trong JSON trở thành chuỗi "10000". Khi mở lại trong Excel, số 10000 có thể được nhận dạng lại là số, nhưng số 0 ở đầu (leading zeros) sẽ bị mất. Ví dụ "00123" trong JSON (viết dưới dạng chuỗi) vẫn giữ nguyên, nhưng nếu là số 00123 (JSON chuẩn không cho phép số có số 0 ở đầu) – thực tế JSON chỉ chấp nhận số không có số 0 ở đầu, nên vấn đề này ít xảy ra. Tuy nhiên, nếu bạn có mã ZIP dạng số 02134 thì trong JSON buộc phải viết dưới dạng chuỗi "02134" để giữ số 0.

  • Boolean: truefalse trở thành chuỗi "true""false". Khi đọc lại CSV vào Excel, chúng vẫn là chuỗi, không tự động chuyển lại boolean.

  • null: Giá trị null chuyển thành chuỗi rỗng hoặc chuỗi "null" (tùy cách xử lý của công cụ – trang này sử dụng chuỗi rỗng).

Ký tự đặc biệt trong giá trị

CSV sử dụng dấu phân cách và xuống dòng để cấu trúc dữ liệu. Nếu giá trị chứa các ký tự này, công cụ tự động bọc giá trị trong dấu ngoặc kép và thoát các dấu ngoặc kép bên trong bằng cách nhân đôi (theo RFC 4180). Ví dụ:

Giá trị gốc: He said "hello"
Trong CSV: "He said ""hello"""

Mất cấu trúc lồng ghép

Toàn bộ cấu trúc phân cấp biến mất. Chỉ còn tên cột dạng đường dẫn dấu chấm. Khi chuyển ngược lại (CSV → JSON), công cụ khác phải suy luận lại cấu trúc, thường sử dụng quy ước tách tên cột theo dấu chấm – nhưng điều này không phải lúc nào cũng chính xác.

Giới hạn và thông báo lỗi

Công cụ áp dụng một số giới hạn để đảm bảo hiệu suất trình duyệt:

  • Kích thước tập tin: Nếu tập tin vượt quá dung lượng tối đa (không được công bố cụ thể nhưng có trong logic), công cụ hiển thị: "This file is too large. Use a file under ‹max›."
  • Số hàng và cột: Nếu bảng có nhiều hơn số hàng hoặc số cột tối đa, lỗi tương ứng: "This table has more than ‹max› rows.""This table has more than ‹max› columns." Các giới hạn này được đặt để tránh làm treo tab trình duyệt.
  • Lỗi đầu vào:
    "Choose one file first." – nếu không chọn tập tin.
    "Choose a CSV, JSON or XLSX file." – nếu chọn sai loại.
    "Choose a different output format." – nếu chọn đầu ra trùng với đầu vào? (trường hợp này ít gặp).
  • Lỗi chuyển đổi:
    "Could not convert this file." – lỗi chung.
    "Conversion cancelled." – nếu người dùng hủy.
    "This conversion is taking too long. Try a smaller file." – khi xử lý quá lâu.

Tất cả xử lý đều phía client, nên tốc độ phụ thuộc vào hiệu năng máy tính và trình duyệt.

Ai cần công cụ này? Các trường hợp sử dụng thực tế

Công cụ JSON‑to‑CSV này phù hợp với:

  • Nhà phát triển cần xuất dữ liệu API: API thường trả về JSON. Muốn đưa vào Excel hoặc Google Sheets để phân tích thống kê, cần CSV. Công cụ làm phẳng tự động giúp tiết kiệm thời gian viết script.
  • Người làm báo cáo với dữ liệu nhạy cảm: Vì không có tải lên máy chủ, bạn có thể chuyển đổi dữ liệu khách hàng hoặc tài chính mà không lo rò rỉ. Đây là lợi thế lớn so với các dịch vụ web upload.
  • Người dùng ở miền địa phương không dùng dấu phẩy: Nếu số thập phân dùng dấu phẩy (ví dụ 1,5 ở Đức), bạn cần dấu phân cách CSV là dấu chấm phẩy để tránh nhầm lẫn. Công cụ cho phép chọn dấu phân cách tùy ý.
  • Chuyên gia dữ liệu cần mẫu thử nhanh: Khi prototype pipeline xử lý dữ liệu, việc chuyển JSON sang CSV trong trình duyệt mà không cần cài đặt thư viện nào là rất tiện lợi.

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

1. Tại sao JSON của tôi báo lỗi "This JSON is invalid or not table-shaped"?
Kiểm tra xem cấp cao nhất có phải là một mảng ([...]) không. Nếu là một đối tượng duy nhất ({...}), bạn cần bọc nó trong mảng. Nếu mảng chứa các đối tượng không đồng nhất (khóa khác nhau), công cụ vẫn cố gắng hợp nhất các khóa, nhưng nếu quá lộn xộn, nó có thể từ chối. Đảm bảo mỗi đối tượng đều có cấu trúc tương tự.

2. Làm sao để giữ nguyên số 0 ở đầu (ví dụ mã ZIP 02134)?
Trong JSON, viết số đó dưới dạng chuỗi: "02134". Khi chuyển sang CSV, nó vẫn là chuỗi và giữ nguyên số 0. Nếu bạn viết số 2134 (không có số 0), nó sẽ mất.

3. Tôi có thể chuyển đổi nhiều tập tin JSON cùng lúc không?
Không, công cụ chỉ chấp nhận một tập tin duy nhất. Bạn phải chuyển từng tập tin một.

4. Dữ liệu của tôi có bị gửi lên máy chủ không?
Không. Toàn bộ quá trình phân tích, làm phẳng và tạo CSV diễn ra hoàn toàn trong trình duyệt JavaScript của bạn. Không có byte nào được gửi ra ngoài.

5. CSV đầu ra có thể mở trong Excel bị lỗi định dạng số hoặc ngày tháng không?
Có thể. Vì mọi giá trị đều là chuỗi, Excel sẽ coi "10000" là số (nếu không có dấu nháy), nhưng nếu có dấu phẩy phân cách thập phân, cần cài đặt locale phù hợp. Tốt nhất nên mở CSV bằng chức năng "Import" của Excel và chỉ định dấu phân cách cũng như kiểu dữ liệu cột.

6. Tại sao CSV của tôi bị lỗi dấu xuống dòng trong một ô?
CSV sử dụng dấu xuống dòng để phân tách hàng. Nếu giá trị JSON chứa ký tự xuống dòng (\n), công cụ tự động bọc giá trị trong dấu ngoặc kép và thoát dấu xuống dòng. Tuy nhiên, khi mở trong Excel, ô đó vẫn hiển thị nhiều dòng. Để tránh nhầm lẫn, hãy kiểm tra dữ liệu gốc có chứa xuống dòng không.