Cách sử dụng
- Chọn chiều đổi: CSV → JSON hoặc JSON → CSV.
- Dán dữ liệu vào ô bên trái hoặc bấm "Mở tệp". Kết quả hiện ngay ở ô bên phải.
- Chọn tuỳ chọn: dấu phân cách, dòng đầu là tiêu đề, kiểu JSON, nhận diện kiểu, cách xử lý đối tượng lồng nhau.
- Bấm "Sao chép" hoặc "Tải về". Bấm "Đổi chiều" để lấy kết quả làm đầu vào của chiều ngược lại.
Đổi CSV và JSON hoạt động thế nào
- CSV → JSON: mỗi dòng thành một đối tượng, khoá là tiêu đề cột. Mặc định mọi giá trị là chuỗi, để "0901234567" hay "007" không bị đổi. Khi bật "Nhận diện kiểu", ô chỉ thành số nếu viết lại số cho ra đúng chữ cũ ("100" là số, "1.50", "007" và số có quá nhiều chữ số thì không), và true, false, null chỉ nhận khi viết thường đúng như vậy.
- Tiêu đề trùng nhau hoặc trống bị báo lỗi chứ không tự đổi tên (trừ khi bạn chọn "Đổi tên"). Dòng không có đúng số ô của tiêu đề cũng bị báo kèm số dòng, vì công cụ không đoán ô nào thiếu hay thừa.
- JSON → CSV: danh sách các đối tượng thành bảng, cột là hợp các khoá theo thứ tự xuất hiện; đối tượng nào thiếu khoá thì ô để trống. Đối tượng lồng nhau được tách thành cột "a.b" (hoặc giữ dạng chuỗi JSON), còn danh sách bên trong luôn là chuỗi JSON trong ô, vì CSV là bảng phẳng.
- JSON không phân biệt null với chuỗi rỗng khi đổi sang CSV (cả hai là ô trống), và công cụ nói rõ có bao nhiêu null.
- Số nguyên lớn hơn 9.007.199.254.740.991 hoặc số thập phân quá dài mà JavaScript làm tròn sẽ được giữ nguyên các chữ số khi đổi sang CSV, không bị làm tròn âm thầm. Số như 1.50 hay 1e3 cũng giữ đúng chữ đã viết.
- Giới hạn: tối đa 5 MB, 100.000 dòng và 200 cột. Vượt giới hạn thì công cụ từ chối và nói rõ, không cắt bớt dữ liệu. Ô kết quả chỉ hiện 200.000 ký tự đầu nếu kết quả rất dài; tải về và sao chép luôn lấy đủ.
Câu hỏi thường gặp
Dữ liệu của tôi có bị tải lên máy chủ không?
Không. Mọi phép đổi chạy trong trình duyệt của bạn; công cụ không gửi và không lưu dữ liệu ở đâu cả.
Vì sao số điện thoại 0901234567 vẫn là chuỗi trong JSON?
Số bắt đầu bằng 0 không viết lại đúng chữ cũ khi thành số (0901234567 thành 901234567), nên công cụ giữ nó là chuỗi. Mã sản phẩm, số tài khoản dài cũng vậy. Chỉ ô như 100 hay -2.5 mới thành số khi bật "Nhận diện kiểu".
JSON lồng nhau thành CSV thế nào?
Đối tượng trong đối tượng được tách thành cột có tên "cha.con" (ví dụ địa chỉ.thành phố). Danh sách bên trong được ghi thành chuỗi JSON trong một ô. Nếu muốn giữ cả đối tượng lồng nhau dạng chuỗi JSON, chọn "Giữ dạng chuỗi JSON".
Số lớn trong JSON của tôi có bị làm tròn không?
Không. Các số mà JavaScript không giữ chính xác được (như 12345678901234567890) được ghi vào CSV đúng các chữ số gốc, và công cụ báo có bao nhiêu số như vậy.
Vì sao báo lỗi "dòng không có đúng số ô của tiêu đề"?
Một dòng CSV có ít hoặc nhiều ô hơn dòng tiêu đề thì không biết đổi thành đối tượng thế nào. Hãy sửa các dòng được liệt kê, hoặc chọn kiểu "Mảng các mảng" nếu không cần khoá.
Khác nhau giữa mảng đối tượng và mảng các mảng?
Mảng đối tượng: mỗi dòng là { "Mã": "A1", "Tên": "Áo" }, dễ đọc và hợp với API. Mảng các mảng: mỗi dòng là ["A1", "Áo"], gọn hơn và giữ nguyên thứ tự cột, không cần tiêu đề.
Tôi có đổi được tệp Excel (.xlsx) không?
Chưa đọc trực tiếp tệp .xlsx. Hãy mở trong Excel rồi "Lưu thành" CSV UTF-8, sau đó dùng công cụ này.