JSON là gì?
JSON (JavaScript Object Notation) là định dạng dữ liệu dựa trên văn bản, dùng để trao đổi dữ liệu giữa các hệ thống. Định dạng này nhẹ, dễ đọc cho con người và máy móc, độc lập với ngôn ngữ lập trình. JSON thường được dùng làm payload trong API, Webhook và luồng dữ liệu automation.
JSON mô tả dữ liệu qua cặp key-value, với key luôn là chuỗi trong dấu ngoặc kép và value có thể là chuỗi, số, boolean, mảng, đối tượng hoặc null. Cấu trúc chính bao gồm object (dấu ngoặc nhọn {}) và array (dấu ngoặc vuông []).
Vai trò của JSON trong luồng dữ liệu
JSON đóng vai trò trung tâm trong luồng dữ liệu của workflow automation, làm định dạng chuẩn cho request body và response từ API. Nó giúp truyền cấu trúc dữ liệu phức tạp giữa các node trong n8n hoặc các công cụ tương tự, đảm bảo tính nhất quán.
Trong automation, JSON cho phép data mapping dễ dàng giữa các bước: ví dụ, dữ liệu từ Trigger được parse thành JSON rồi transform trước khi gửi đến HTTP Request node. Không có JSON, việc xử lý dữ liệu không cấu trúc sẽ phức tạp hơn nhiều so với XML.
JSON được dùng như thế nào trong thực tế?
JSON được sử dụng qua các bước serialization (chuyển object thành chuỗi JSON) và deserialization (parse chuỗi JSON thành object). Trong workflow, bạn thường thấy Content-Type: application/json trong header để chỉ định định dạng.
Dưới đây là ví dụ JSON cơ bản đại diện cho dữ liệu user từ API:
“ { "userId": 123, "name": "Nguyễn Văn A", "email": "a@example.com", "active": true, "scores": [95, 87, 92] } “
Các bước sử dụng phổ biến bao gồm:
- Gửi request: Đặt JSON vào request body với method POST/PUT.
- Nhận response: Parse JSON từ response body để extract field như
{{ $json.userId }}trong n8n. - Transform: Sử dụng field mapping để thay đổi key hoặc filter array.
Trong Webhook, JSON là payload mặc định, giúp trigger workflow ngay khi nhận dữ liệu.
Những lỗi hoặc hiểu sai phổ biến về JSON
Lỗi phổ biến nhất là cú pháp sai: thiếu dấu ngoặc kép quanh key, dấu phẩy thừa ở cuối object, hoặc dùng undefined/function làm value (JSON chỉ hỗ trợ 6 kiểu cơ bản).
Một hiểu lầm thường gặp là nhầm JSON với JavaScript Object: JSON là chuỗi text, phải dùng JSON.parse() để chuyển thành object thực thụ, ngược lại JSON.stringify() để serialize. Trong automation, quên set Content-Type: application/json dẫn đến lỗi 415 Unsupported Media Type.
Các lỗi khác:
- Nest object quá sâu gây vượt context window ở AI tool hoặc timeout parse.
- Không escape ký tự đặc biệt trong string, gây invalid JSON.
- Bỏ qua
nullvalue, dẫn đến dữ liệu thiếu khi mapping.
Kiểm tra JSON bằng công cụ như JSONLint trước khi dùng trong workflow.
Các thuật ngữ liên quan đến JSON
Dưới đây là một số thuật ngữ thường gặp liên quan đến JSON trong automation:
- Payload: Dữ liệu chính trong request/response, thường ở định dạng JSON.
- Data Mapping: Quá trình ánh xạ field từ JSON source sang target trong workflow.
- Content-Type: Header chỉ định
application/jsonđể server biết định dạng dữ liệu. - JSON.parse(): Phương thức chuyển chuỗi JSON thành object sử dụng được.
Các câu hỏi thường gặp
JSON khác gì với JavaScript Object?
JSON là chuỗi text định dạng dữ liệu, trong khi JavaScript Object là kiểu dữ liệu thực thụ có thể chứa function và method. Bạn phải dùng JSON.parse() để chuyển JSON thành Object, và JSON.stringify() để ngược lại.
Làm sao parse JSON trong n8n workflow?
Sử dụng JSON node hoặc expression {{ JSON.parse($json.data) }} để extract field từ chuỗi JSON. Nếu response từ API là JSON, n8n tự parse khi set đúng Content-Type.
Tại sao API thường trả lỗi 400 khi gửi JSON?
Lỗi 400 Bad Request thường do JSON invalid: cú pháp sai, thiếu field bắt buộc hoặc key không trong ngoặc kép. Kiểm tra bằng JSON.stringify() trước khi gửi và đọc error message từ response.
Có thể dùng JSON thay XML trong automation không?
Có, JSON nhẹ hơn và dễ parse hơn XML trong hầu hết workflow hiện đại. Nhiều API hỗ trợ cả hai qua Accept header, ưu tiên application/json để tránh phức tạp.