JSON ↔ CSV cho ops SME | Import API vào Excel đúng cách【2026】
API nói JSON; Excel và import hàng loạt nói CSV. Team ops SME cần bảng phẳng để lọc, pivot, đối soát — không cần giữ toàn bộ hierarchy. Nested JSON phải flatten có chủ đích; CSV→JSON phải ép kiểu trước khi đẩy lại API. Làm trên trình duyệt với JSON ↔ CSV khi payload có dữ liệu khách — không upload server lạ.
Team vận hành SME ở Việt Nam hay gặp cùng một cảnh: developer gửi file JSON từ API (đơn hàng, lead CRM, tồn kho), còn kế toán / sales / ops muốn mở Excel để lọc và đối soát. Copy nguyên JSON vào sheet thì vỡ layout; nhờ dev viết script mỗi lần thì chậm. Ngược lại, marketing xuất CSV từ Google Sheets rồi backend lại cần JSON array để import.
Bài này không giải thích “JSON là gì” kiểu sách giáo khoa. Tập trung quyết định format, flatten an toàn, lỗi Excel với tiếng Việt, và checklist import — đúng pain của ops và freelancer làm việc với API + spreadsheet hàng ngày.
Ai nên đọc bài này
- Ops / CS / kế toán SME nhận file JSON từ đối tác hoặc từ Postman
- Freelancer tích hợp API rồi phải giao bảng Excel cho khách
- Dev backend viết endpoint import/export và cần quy ước rõ với business
- Ai từng mở CSV tiếng Việt trong Excel thấy
á,?, hoặc cột dồn một ô
JSON và CSV khác nhau chỗ nào (theo việc import)
| Tiêu chí | JSON / CSV |
|---|---|
| Cấu trúc | Lồng nhau (object, mảng) / Một hàng = một bản ghi phẳng |
| Ai đọc được | Dev, Postman, app / Excel, Sheets, CRM import wizard |
| API REST | Chuẩn response/request / Ít dùng làm body (trừ upload file) |
| Kích thước | Dư key, dài hơn / Gọn, dễ gửi email đính kèm |
| Kiểu dữ liệu | number, boolean, null rõ / Tất cả là text cho đến khi parse |
| Tiếng Việt | UTF-8 trong string ổn / Dễ lỗi encoding khi mở Excel sai cách |
Chọn JSON khi: cấu hình app, payload API, object có address.city, mảng items[] bên trong đơn hàng.
Chọn CSV khi: người không phải dev phải lọc/đếm; import vào Sapo, KiotViet, HubSpot, Google Ads; hoặc gửi báo cáo tuần qua email.
Quy tắc thực dụng cho SME: hệ thống giữ JSON; báo cáo và import thủ công dùng CSV. Đừng bắt kế toán đọc JSON indent.
Luồng điển hình: API JSON → Excel
1. Lấy đúng phần mảng
Nhiều API Việt Nam / SaaS bọc dữ liệu:
{
"success": true,
"data": [
{ "id": 101, "name": "Nguyễn An", "total": 250000 },
{ "id": 102, "name": "Trần Bình", "total": 89000 }
],
"meta": { "page": 1 }
}
Chỉ mảng trong data mới convert thành bảng có nghĩa. Giữ nguyên cả object root thì cột sẽ thành success, data, meta — vô dụng cho ops.
2. Flatten object lồng nhau
Ví dụ lead CRM:
[
{
"id": "L-09",
"user": { "name": "Lan", "email": "[email protected]" },
"tags": ["vip", "hn"]
}
]
CSV không có “ô lồng ô”. Cách phổ biến: cột user.name, user.email. Mảng tags khó map 1 cột — hoặc join thành "vip;hn", hoặc tách hàng (mỗi tag một dòng). Trước khi convert, team phải thống nhất: một lead = một hàng, hay một tag = một hàng.
Công cụ JSON to CSV của Kawa làm phẳng object lồng nhau bằng key kết hợp làm header — phù hợp xem nhanh response trong Excel. Với mảng con phức tạp, nên cắt bớt field hoặc flatten bằng script trước.
3. Mở trong Excel / Google Sheets
| Cách | Khi nào dùng |
|---|---|
| Google Sheets → File → Import → Upload CSV (UTF-8) | Team đã dùng Workspace; ít lỗi font tiếng Việt |
| Excel → Data → From Text/CSV → chọn UTF-8 | Excel desktop; kiểm soát delimiter |
| Double-click file .csv | Nhanh nhưng hay đoán sai encoding / dấu phân cách |
Delimiter: công cụ Kawa xuất dấu phẩy. Locale một số máy Excel VN/EU mặc định nghĩ CSV dùng ; — nếu cột dồn một ô, mở qua wizard và chọn comma.
4. Đối soát trước khi import hệ thống khác
- Số hàng CSV = số phần tử mảng JSON
- Cột tiền / số lượng là số, không có ký tự
đhoặc dấu chấm nghìn lẫn lộn idkhông bị Excel biến thành scientific notation (1.01E+12) — format cột Text nếu cần- Ngày tháng: API ISO (
2026-07-19) vs Excel local (19/07/2026) — thống nhất trước khi map field
Luồng ngược: CSV / Excel → JSON cho API import
Ops hay xuất sheet “danh sách cập nhật giá” rồi nhờ đẩy API. CSV→JSON tạo mảng object; sau đó:
- Ép kiểu:
"250000"→250000,"true"→true, ô trống →nullhoặc bỏ key - Đặt tên key đúng schema API (
skukhông phảiSKU, khoảng trắng thừa phá import) - Validate một bản ghi bằng Postman trước khi bulk 500 dòng
- Che PII nếu paste vào tool online công cộng — với Kawa xử lý local nên an toàn hơn upload
Lỗi hay gặp: Excel lưu ngày thành serial number (45800) trong CSV → JSON nhận số vô nghĩa. Xuất ngày dạng text ISO trước khi convert.
Case study ngắn
A. Freelancer giao báo cáo đơn hàng cho khách SME
API trả 200 đơn nested (customer, items[]). Freelancer flatten customer.name, customer.phone, cộng thêm cột item_count = độ dài mảng; không cố nhét từng SKU vào một CSV nếu khách chỉ cần tổng. Mở Sheets UTF-8, lọc theo tỉnh, gửi link — khách không cần biết JSON.
B. Ops import lead từ form web vào CRM
Form export CSV; CRM API nhận JSON array. Convert CSV→JSON, map cột SĐT → phone, bỏ cột ghi chú nội bộ, ép opt_in thành boolean. Import thử 3 dòng — ok mới chạy full. Tránh dump cả sheet có công thức Excel (=SUM(...)) vào JSON.
Checklist trước khi coi là “xong”
- Đã tách đúng mảng (không convert cả envelope
success/meta) - Đã thống nhất flatten vs tách hàng cho mảng con
- Excel/Sheets mở UTF-8, tiếng Việt không lỗi
- Số hàng và vài giá trị mẫu khớp nguồn
- CSV→JSON: đã ép number/boolean/null theo schema
- Payload nhạy cảm xử lý trên trình duyệt hoặc môi trường nội bộ
Cách dùng nhanh trên Kawa Dev Tools
- Mở JSON to CSV Converter
- Dán JSON array → Convert to CSV; hoặc dán CSV → Convert to JSON
- Copy kết quả — mở Excel/Sheets hoặc dán vào request import
- Mọi xử lý trong trình duyệt, không gửi server
Giới hạn thực tế: vài MB trong memory trình duyệt là ổn; file cực lớn (chục MB+) nên tách trang API hoặc dùng pipeline server. Object đơn {} thành một hàng; cần nhiều hàng thì dùng [].
Lỗi thường gặp (và cách tránh)
| Triệu chứng | Nguyên nhân gần đúng | Cách xử lý |
|---|---|---|
| Một cột khổng lồ | Delimiter sai (, vs ;) | Mở bằng wizard, chọn comma |
Nguyên / dấu ? | Encoding không phải UTF-8 | Import chọn UTF-8; tránh ANSI |
Cột id thành 1.23E+15 | Excel đoán number | Format Text hoặc thêm prefix khi xuất |
| Nested mất hết | Flatten không thiết kế | Chỉ lấy field ops cần; bỏ items[] sâu |
| API reject sau CSV→JSON | Mọi value là string | Ép kiểu theo schema |
| Convert ra 1 hàng lạ | Dán cả { data: [...] } | Chỉ lấy mảng bên trong |
FAQ (tóm tắt thao tác)
JSON hay CSV cho báo cáo tuần?
CSV/Sheets. Giữ JSON làm nguồn hệ thống; xuất bảng khi người đọc là non-dev.
Có cần script Node mỗi lần không?
Không, nếu chỉ vài trăm bản ghi và schema ổn định — tool trình duyệt đủ. Script khi phải chạy cron, nhiều trang API, hoặc transform phức tạp lặp lại.
Giữ nested trong Excel được không?
Không sạch. Excel là bảng phẳng. Cần hierarchy thì dùng JSON + UI app, hoặc nhiều sheet quan hệ (orders / order_items).
Liên kết liên quan
- JSON to CSV Converter — chuyển hai chiều, flatten nested, chạy local
- JSON Formatter — pretty-print / validate trước khi convert
- Danh sách công cụ
Tóm lại: Ops SME thắng khi coi JSON là “ngôn ngữ máy” và CSV là “ngôn ngữ bảng”. Flatten có chủ đích, UTF-8 đúng cách, ép kiểu khi quay lại API — đó là khác biệt giữa import một lần sạch và cả tuần sửa file lỗi.