tooly

Chuyển JSON sang CSV online

Dán một mảng JSON để nhận CSV sạch cho Excel, Google Sheets hoặc import vào cơ sở dữ liệu — trường lồng nhau được làm phẳng, dấu nháy được escape, 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 JSON của bạn — mảng các object cho kết quả tốt nhất.

  2. 2

    Chọn ký tự phân tách: dấu phẩy cho hầu hết công cụ, dấu chấm phẩy cho Excel ở khu vực châu Âu.

  3. 3

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

Từ phản hồi API đến bảng tính

JSON là định dạng gốc của API web, nhưng những người cần dữ liệu lại thường làm việc trong bảng tính. Những trường hợp điển hình: danh sách đơn hàng lấy từ API cửa hàng mà kế toán muốn có trong Excel, bản ghi người dùng xuất từ cơ sở dữ liệu NoSQL để làm nhanh một bảng tổng hợp, sự kiện phân tích cần lọc trong Google Sheets, hoặc một loạt bản ghi cần nhập hàng loạt vào CRM chỉ nhận tải lên CSV. Tệp CSV cũng là định dạng dễ nhất để so sánh khác biệt, sắp xếp và grep trên dòng lệnh.

Công cụ nhận một mảng object và tạo ra mỗi object một hàng, mỗi trường một cột, với hàng tiêu đề ở trên cùng. Bộ đếm bên dưới ô nhập hiển thị số hàng được tạo ra, một cách kiểm tra nhanh so với số bản ghi bạn mong đợi.

Bảng được dựng như thế nào

Hàng và cột được suy ra từ chính dữ liệu, không cần schema:

  • Cột là hợp của mọi khóa, theo thứ tự xuất hiện lần đầu. Nếu bản ghi đầu tiên có id và name, còn bản ghi thứ mười có thêm email, tiêu đề sẽ kết thúc bằng email và chín hàng đầu để trống ô đó.
  • Object lồng nhau được làm phẳng bằng dấu chấm, nên {"customer": {"address": {"city": "Lyon"}}} tạo ra cột customer.address.city. Độ sâu bao nhiêu cũng được.
  • Một object đơn lẻ thay vì mảng được coi là bảng một hàng.
  • Giá trị đơn thuần trong mảng, như [1, 2, 3] hoặc danh sách chuỗi, được đưa vào một cột tên value.
  • null trở thành ô trống, và boolean được ghi là true và false.

Một object lồng nhau rỗng như "meta": {} không có trường nào để làm phẳng, nên hoàn toàn không tạo ra cột nào.

Mảng bên trong bản ghi

Bảng tính không có khái niệm danh sách bên trong một ô, nên một mảng như "tags": ["red", "sale"] được ghi dưới dạng văn bản JSON của nó, ["red","sale"], trong một ô duy nhất. Điều đó giữ dữ liệu không mất mát: bạn có thể phân tích lại sau này hoặc tách bằng công thức bảng tính.

Nếu điều bạn thực sự cần là mỗi phần tử mảng một hàng, ví dụ mỗi dòng đơn hàng một hàng thay vì mỗi đơn hàng một hàng, hãy định hình lại dữ liệu trước. Trong phần lớn ngôn ngữ script, đó chỉ là một dòng map qua các bản ghi cha, sao chép ID của bản ghi cha vào từng bản ghi con. Đưa mảng đã định hình lại vào công cụ sẽ cho ra kết quả dạng bảng gọn gàng, đầy đủ.

Dấu nháy và ký tự phân tách

Một ô chỉ được bọc trong dấu nháy kép khi cần thiết: khi nó chứa ký tự phân tách, dấu nháy kép hoặc ký tự xuống dòng. Dấu nháy bên trong giá trị được nhân đôi theo yêu cầu của RFC 4180, nên 6" pipe được ghi thành "6"" pipe". Mọi giá trị khác được ghi trần, giúp tệp nhỏ và dễ đọc.

Ký tự phân tách quan trọng nhất khi tệp được mở bằng cách nhấp đúp trong Excel:

  • Dấu phẩy là mặc định cho Google Sheets, LibreOffice, cơ sở dữ liệu, mô-đun csv của Python và gần như mọi công cụ nhập dữ liệu.
  • Dấu chấm phẩy là thứ Excel mong đợi khi Windows được đặt theo khu vực dùng dấu phẩy làm dấu thập phân, bao gồm phần lớn châu Âu lục địa và Mỹ Latinh. Với tệp dùng dấu phẩy ở những khu vực đó, mọi hàng đều dồn vào cột A.

Khi còn phân vân, hãy dùng dấu phẩy và mở tệp qua chức năng nhập Data → From Text/CSV của Excel, cho phép bạn chọn ký tự phân tách một cách rõ ràng.

Đưa vào Excel gọn gàng

Một vài vấn đề xảy ra sau khi chuyển đổi, bên trong bảng tính, và rất dễ phòng tránh:

  • Chữ có dấu biến thành ký hiệu lạ. Tệp là UTF-8 không có BOM, và một số phiên bản Excel đoán sai thành bảng mã cũ khi nhấp đúp. Hãy dùng chức năng nhập From Text/CSV và chọn UTF-8, hoặc mở tệp trong Google Sheets.
  • Số 0 ở đầu và ID dài bị biến dạng. Excel chuyển 00042 thành 42 và biến số từ 16 chữ số trở lên thành ký hiệu khoa học. Trong hộp thoại nhập, hãy đặt các cột đó thành Text.
  • Ngày đổi định dạng. Chuỗi ISO như 2026-03-01T10:00:00Z có thể bị diễn giải một phần. Hãy nhập cột dưới dạng Text nếu bạn cần giá trị gốc.

Lưu ý rằng số lớn hơn 9.007.199.254.740.991 đã mất độ chính xác ngay khi JSON được phân tích trong trình duyệt, nên hãy lưu ID rất lớn dưới dạng chuỗi trong JSON nguồn nếu chúng phải được giữ chính xác.

Kiểm tra đầu vào trước

Nếu công cụ báo JSON không hợp lệ, hãy dán dữ liệu vào định dạng JSON, công cụ chỉ ra chính xác dòng và cột có vấn đề. Dữ liệu từ tệp log thường ở định dạng JSON Lines, mỗi dòng một object và không có dấu ngoặc bao quanh; hãy bọc nó trong [ và ] và thêm dấu phẩy giữa các dòng để thành một mảng hợp lệ. Chuyển đổi chiều ngược lại có sẵn ở chuyển CSV sang JSON. Mọi xử lý diễn ra trong trang, nên không có gì bạn dán vào được gửi đi đâu cả.

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

Đối tượng lồng nhau được xử lý thế nào?

Chúng được làm phẳng thành tên cột có dấu chấm, ví dụ user.address.city. Mảng được giữ nguyên dạng chuỗi JSON trong một ô.

Nếu các object có khóa khác nhau thì sao?

Hàng tiêu đề là hợp của tất cả khóa; giá trị thiếu được để trống.

Vì sao Excel dồn hết vào một cột?

Excel ở nhiều khu vực châu Âu mặc định dùng dấu chấm phẩy. Chọn ký tự phân tách ; rồi tải lại.

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

Không. Việc chuyển đổi diễn ra trong trình duyệt của bạn.

Có giới hạn dung lượng không?

Tệp vài megabyte chuyển đổi tức thì; tệp rất lớn chỉ bị giới hạn bởi bộ nhớ trình duyệt.

Công cụ liên quan