JSON ↔ CSV cho ops SME | Import API vào Excel đúng cách【2026】

(Cập nhật: 19 tháng 7, 2026 ) JSON CSV Excel API import dữ liệu SME ops
Kết luận

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)

JSON vs CSV cho luồng ops
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áchKhi 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-8Excel desktop; kiểm soát delimiter
Double-click file .csvNhanh 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
  • id khô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 đó:

  1. Ép kiểu: "250000"250000, "true"true, ô trống → null hoặc bỏ key
  2. Đặt tên key đúng schema API (sku không phải SKU , khoảng trắng thừa phá import)
  3. Validate một bản ghi bằng Postman trước khi bulk 500 dòng
  4. 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ĐTphone, 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

  1. Mở JSON to CSV Converter
  2. Dán JSON array → Convert to CSV; hoặc dán CSV → Convert to JSON
  3. Copy kết quả — mở Excel/Sheets hoặc dán vào request import
  4. 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ứngNguyên nhân gần đúngCá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-8Import chọn UTF-8; tránh ANSI
Cột id thành 1.23E+15Excel đoán numberFormat Text hoặc thêm prefix khi xuất
Nested mất hếtFlatten không thiết kếChỉ lấy field ops cần; bỏ items[] sâu
API reject sau CSV→JSONMọ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

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.