Tải ví dụ mẫu
Quy tắc cú pháp JSON
Các lỗi JSON thường gặp
| Thông báo lỗi | Ý nghĩa | Cách sửa |
|---|---|---|
| Unexpected token | Phát hiện ký tự không hợp lệ | Kiểm tra dấu ngoặc đơn, thiếu dấu hai chấm hoặc ký tự lạ |
| Unexpected end of JSON input | JSON bị cắt đứt hoặc chưa hoàn chỉnh | Đảm bảo tất cả dấu ngoặc { } và [ ] đều được đóng |
| Trailing comma | Dấu phẩy thừa sau phần tử cuối cùng | Xóa dấu phẩy sau cặp key-value hoặc phần tử mảng cuối cùng |
| Expected property name | Thiếu hoặc sai định dạng key trong đối tượng | Bọc tất cả key đối tượng trong dấu ngoặc kép |
| Unterminated string | Giá trị chuỗi thiếu dấu ngoặc đóng | Tìm và đóng tất cả chuỗi còn mở bằng dấu ngoặc kép tương ứng |
JSON là gì?
JSON (JavaScript Object Notation) là định dạng văn bản nhẹ dùng để lưu trữ và trao đổi dữ liệu. Được đề xuất bởi Douglas Crockford vào đầu những năm 2000, JSON trở thành chuẩn trao đổi dữ liệu phổ biến nhất trên internet nhờ cú pháp đơn giản, dễ đọc với con người và dễ phân tích bởi máy tính.
Không giống XML hay CSV, JSON có thể biểu diễn cấu trúc dữ liệu phức tạp gồm các đối tượng lồng nhau và mảng nhiều chiều. Điều này khiến JSON trở thành lựa chọn hàng đầu cho API REST, file cấu hình ứng dụng, cơ sở dữ liệu NoSQL như MongoDB, và lưu trữ cài đặt trong các ứng dụng web hiện đại.
JSON được chuẩn hóa theo RFC 8259 và ECMA-404. Chuẩn này định nghĩa chính xác những gì hợp lệ — từ cách viết chuỗi, số, giá trị boolean, cho đến cách cấu trúc đối tượng và mảng. Bất kỳ sai lệch nào so với chuẩn đều khiến JSON trở nên không hợp lệ.
Quy tắc cú pháp JSON
JSON có 6 kiểu dữ liệu cơ bản:
- Chuỗi (String): Phải được bao bởi dấu ngoặc kép đôi. Ví dụ:
"Xin chào". Dấu ngoặc đơn (') không hợp lệ trong JSON. - Số (Number): Nguyên hoặc thập phân, có thể âm hoặc dùng ký hiệu khoa học. Ví dụ:
42,-3.14,1.5e10. - Boolean: Chỉ có hai giá trị
truevàfalse— bắt buộc viết thường. - Null: Từ khóa
null(viết thường) biểu thị giá trị rỗng/không có. - Đối tượng (Object): Tập hợp các cặp khóa-giá trị trong dấu ngoặc nhọn
{}. Mỗi khóa phải là chuỗi trong ngoặc kép. - Mảng (Array): Danh sách các giá trị trong dấu ngoặc vuông
[], phân cách bằng dấu phẩy.
Những điều JSON không cho phép: chú thích (cả // và /* */), dấu phẩy thừa sau phần tử cuối cùng, khóa không có dấu ngoặc kép, và các giá trị đặc biệt như undefined, NaN, hay Infinity.
Lỗi JSON thường gặp và cách sửa
1. Dấu phẩy thừa (Trailing Comma)
Đây là lỗi phổ biến nhất khi lập trình viên viết JSON theo thói quen JavaScript. JSON nghiêm ngặt không cho phép dấu phẩy sau phần tử cuối cùng trong đối tượng hoặc mảng. Để tránh: luôn kiểm tra phần tử cuối cùng trước dấu } hoặc ].
2. Thiếu dấu ngoặc kép cho khóa
Trong JavaScript, bạn có thể viết { name: 'Alice' } — nhưng trong JSON, khóa phải luôn có dấu ngoặc kép: { "name": "Alice" }. Đây là nguồn gốc của nhiều lỗi khi sao chép trực tiếp từ code JS sang JSON.
3. Chú thích trong JSON
JSON thuần túy không hỗ trợ chú thích. Nếu bạn cần comment trong file cấu hình, hãy cân nhắc dùng YAML hoặc TOML thay thế. Ngoài ra, một số tool như VS Code hỗ trợ định dạng JSONC (JSON with Comments) riêng — nhưng đây không phải JSON chuẩn.
4. Chuỗi chưa đóng (Unterminated String)
Xảy ra khi chuỗi văn bản bị ngắt giữa chừng hoặc thiếu dấu ngoặc đóng. Thường gặp khi copy-paste nội dung có chứa dấu ngoặc kép bên trong mà không được escape đúng cách (\").
So sánh JSON, XML và YAML
| Tiêu chí | JSON | XML | YAML |
|---|---|---|---|
| Dễ đọc | Tốt | Trung bình | Rất tốt |
| Hỗ trợ comment | Không | Có | Có |
| Kích thước file | Nhỏ | Lớn | Trung bình |
| Hỗ trợ REST API | Chuẩn mực | Hạn chế | Ít |
| Dùng trong config | Phổ biến | Ít hơn | Rất phổ biến |
Kết luận: JSON thắng ở REST API và web; YAML thắng ở file cấu hình (Kubernetes, Docker Compose, CI/CD); XML vẫn được dùng trong hệ thống doanh nghiệp cũ (SOAP, RSS, XSLT).
Thực hành tốt để viết JSON hợp lệ
- Luôn dùng trình soạn thảo có highlight cú pháp JSON (VS Code, JetBrains) — lỗi sẽ được tô màu ngay.
- Dùng linter JSON trong pipeline CI/CD — đừng đợi đến production mới phát hiện lỗi.
- Khi tạo JSON động bằng code, dùng
JSON.stringify()(JavaScript) hoặcjson.dumps()(Python) thay vì ghép chuỗi thủ công. - Validate JSON sau mỗi lần chỉnh sửa thủ công — đặc biệt khi thêm hoặc xóa phần tử.
- Đặt tên khóa nhất quán: nên dùng
camelCasehoặcsnake_casexuyên suốt, không trộn lẫn. - Tránh dùng ký tự đặc biệt trong khóa — dù hợp lệ nhưng khó đọc và dễ gây lỗi khi truy cập bằng code.
Câu hỏi thường gặp
Công cụ dữ liệu khác
JSON Formatter — Beautify, Minify & Validate JSON Online
Format, beautify, and minify JSON data with real-time validation. Configurable indentation (2/4/tab), instant error detection, copy and download. Free online JSON formatter for developers.
JSON Minifier — Compress JSON & Remove Whitespace Online
Minify JSON online by removing all whitespace and indentation. Shows before/after size comparison with savings percentage. Validates JSON before compressing to guarantee valid output. Includes prettify mode, download, and copy. Free, private, runs entirely in your browser.
JSON Diff and Compare — Find JSON Differences
Compare two JSON objects side-by-side and highlight structural differences. Added lines in green, removed in red. Normalizes key order for accuracy.
JSON to YAML Converter — Convert Config Files Online Free
Convert JSON to YAML and YAML to JSON instantly. Bidirectional converter with indent control, key sorting, and sample configs. Free, private, browser-based.
CSV to JSON Converter — Convert Spreadsheet Data Instantly
Convert CSV to JSON online with real-time preview. Supports comma, semicolon, tab, and pipe delimiters. 3 output formats. Free, private, runs in your browser.
XML Formatter & Validator — Prettify, Minify & Validate XML Online
Format and validate XML online with syntax highlighting, configurable indentation (2/3/4 spaces), and real-time error detection. Switch between prettify and minify modes. Uses the browser's native DOMParser — free, private, no data leaves your device.
Giới thiệu về Chuyển đổi dữ liệu
Công cụ developer tự động hóa các phần lặp đi lặp lại của công việc phần mềm: format JSON, encode/decode Base64, decode JWT để xác minh claim của token, tạo UUID, format XML, diff cấu hình. Đây không phải tác vụ hào nhoáng, nhưng là các điểm nghẽn ngốn 10-15 phút nhiều lần mỗi ngày — cộng lại hàng giờ mỗi tuần. Chạy chúng trên tab trình duyệt sạch sẽ hơn vật lộn với phụ thuộc CLI hay extension IDE có thể gửi dữ liệu riêng tư của bạn cho bên thứ ba.
Vì sao nó quan trọng
Công cụ developer client-side nhanh về cơ bản quan trọng vì chúng được dùng với dữ liệu nhạy cảm. JWT token chứa danh tính người dùng. Payload Base64 có thể encode API key. JSON dump bao gồm bản ghi khách hàng. Nếu một 'công cụ developer' gửi input của bạn lên server để xử lý, bạn vừa rò rỉ production secret. Công cụ dev của ZestLab chạy 100% client-side không có network call nào sau khi load page — những gì bạn paste vẫn ở trong trình duyệt.
Riêng tư và an toàn
Tất cả công cụ developer ở đây chạy trong trình duyệt bằng JavaScript thuần. Không có 'decode server' hay 'format API' — JWT, JSON, payload encode của bạn được parse bởi code chạy trên laptop của bạn. Tự xác minh bằng DevTools trình duyệt → Network tab: bạn sẽ thấy không có request nào khi dùng bất kỳ công cụ nào. Đó là tiêu chuẩn chúng tôi giữ vì công cụ dev xử lý secret.
Thực hành tốt
- Không bao giờ paste JWT hay API token production vào BẤT KỲ công cụ online nào mà không xác minh chạy client-side (check tab Network)
- Dùng chế độ ẩn danh trình duyệt để decode một lần các payload nhạy cảm
- Bookmark công cụ bạn dùng hàng ngày — URL công cụ ZestLab ổn định, không cần tài khoản
- Khi format JSON có secret để team review, redact credential trước khi share output