Chuyển đổi JSON ↔ CSV
Trải phẳng JSON thành CSV, hoặc đọc CSV về thành đối tượng JSON có kiểu
Về công cụ này
Dán một mảng các đối tượng JSON vào và nhận về tệp CSV sẵn sàng cho bảng tính: đối tượng lồng nhau được trải phẳng thành tên cột có dấu chấm (user.address.city), tập cột là hợp của mọi hàng (giá trị thiếu thành ô trống), và cách đặt dấu nháy tuân theo RFC 4180 nên dấu phẩy, dấu nháy và ngắt dòng nằm trong giá trị vẫn sống sót qua Excel lẫn Google Sheets.
Đây là đường ngắn nhất từ một phản hồi API tới bảng tính mà ai đó có thể lọc và dựng pivot. Việc hợp cột rất quan trọng với dữ liệu thực tế, nơi các đối tượng không đồng nhất — hàng 1 có thể thiếu những trường mà hàng 40 có, và công cụ xử lý chuyện đó thay vì báo lỗi hay làm rơi dữ liệu.
Công cụ cũng chạy theo chiều ngược: dán một tệp CSV xuất ra và nhận về mảng JSON các đối tượng lấy khóa từ hàng tiêu đề, có tự nhận diện ký tự phân tách (phẩy, chấm phẩy, tab, sổ đứng) và tùy chọn gán kiểu — số, giá trị luận lý và null trở thành kiểu JSON thật. Cả hai chiều đều chạy hoàn toàn trong trình duyệt của bạn, nên các bản xuất dữ liệu khách hàng không bao giờ rời khỏi máy bạn.
Câu hỏi thường gặp
- Đối tượng lồng nhau được biểu diễn thế nào?
- Được trải phẳng bằng khóa nối bởi dấu chấm: {"user":{"name":"Ada"}} trở thành cột user.name. Nhờ vậy mọi giá trị vô hướng đều địa chỉ hóa được trong một hàng tiêu đề phẳng duy nhất — đúng thứ mà các công cụ bảng tính làm việc được.
- Mảng nằm trong một hàng thì sao?
- Chúng được nhúng dưới dạng chuỗi JSON trong một ô duy nhất (["a","b"]). Việc bung mảng ra thành nhiều cột (tags.0, tags.1…) hay thêm hàng sẽ thay đổi hình dạng dữ liệu theo một cách khá áp đặt — còn nhúng thì giữ cho phép chuyển đổi không mất mát và dễ đoán.
- Vì sao Excel dồn cả tệp CSV của tôi vào một cột?
- Do thiết lập vùng miền: ở phần lớn châu Âu, Excel mong đợi tệp phân tách bằng dấu chấm phẩy vì dấu phẩy được dùng làm dấu thập phân. Hãy đổi tùy chọn ký tự phân tách sang chấm phẩy, hoặc dùng Data → From Text/CSV để tự chỉ định dấu phân tách.
- Công cụ có xử lý được một đối tượng đơn lẻ (không phải mảng) không?
- Có — một đối tượng đứng riêng sẽ thành CSV một hàng. Tuy nhiên các đối tượng lấy ID làm khóa ({"a1":{...},"a2":{...}}) sẽ thành một hàng rất rộng; nếu bạn muốn mỗi giá trị là một hàng thì hãy chuyển chúng thành mảng trước.
- CSV → JSON xử lý trường có dấu nháy và ngắt dòng bên trong ra sao?
- Theo RFC 4180: trường bọc trong dấu nháy kép được phép chứa ký tự phân tách, dùng hai dấu nháy liền ("") để biểu diễn một dấu nháy thật, và chứa cả ngắt dòng. Excel cùng phần lớn cơ sở dữ liệu xuất ra đúng định dạng này, nên các tệp ngoài đời phân tích chuẩn xác.
- Vì sao mã bưu chính của tôi mất số 0 đứng đầu khi chuyển CSV → JSON?
- Chế độ gán kiểu biến 02134 thành số 2134. Hãy bỏ chọn “Giá trị có kiểu”, khi đó mọi ô đều giữ nguyên dạng chuỗi đúng như đã viết — lựa chọn đúng cho mã định danh, số điện thoại và mọi thứ có số 0 ở đầu.