JSON nghĩa là gì và ví dụ đầu tiên
JSON là viết tắt của JavaScript Object Notation. Định dạng này được Douglas Crockford phổ biến vào đầu những năm 2000, mượn cú pháp từ JavaScript và được chuẩn hóa trong RFC 8259 và ECMA-404. Dù mang tên như vậy, JSON không phụ thuộc vào ngôn ngữ lập trình nào: hầu như mọi ngôn ngữ đều đọc và ghi được JSON.
Một tài liệu JSON nhỏ mô tả một người:
{"name": "Ada Lovelace", "born": 1815, "languages": ["English", "French"], "mathematician": true, "spouse": null}
Các kiểu dữ liệu trong JSON
| Kiểu | Ví dụ | Ghi chú |
|---|---|---|
| Chuỗi (string) | "Hello" | văn bản trong dấu nháy kép, có thể chứa escape như \n |
| Số (number) | 42, -3.14, 6.02e23 | không có NaN, Infinity, hệ thập lục phân hay số 0 ở đầu |
| Boolean | true, false | luôn viết chữ thường |
| Null | null | giá trị rỗng hoặc chưa xác định |
| Đối tượng (object) | {"key": "value"} | các cặp tên/giá trị; tên luôn là chuỗi |
| Mảng (array) | [1, 2, 3] | danh sách có thứ tự gồm các giá trị thuộc bất kỳ kiểu nào |
JSON không có kiểu ngày tháng: ngày thường được viết dưới dạng chuỗi ISO 8601 như "2026-05-01T10:00:00Z".
Định dạng JSON: các quy tắc cú pháp
- Dữ liệu được viết thành các cặp tên/giá trị:
"name": "Ada". - Tên (khóa) và chuỗi luôn dùng dấu nháy kép – không bao giờ dùng nháy đơn.
- Các phần tử được phân tách bằng dấu phẩy, không có dấu phẩy sau phần tử cuối cùng.
- Dấu ngoặc nhọn
{ }chứa đối tượng, dấu ngoặc vuông[ ]chứa mảng. - Không được phép có chú thích.
- Dấu cách và xuống dòng giữa các phần tử được bỏ qua, nên cùng một dữ liệu có thể được rút gọn hoặc định dạng đẹp.
- Một văn bản JSON chứa một giá trị ở cấp cao nhất và được mã hóa bằng UTF-8.
File JSON là gì?
File JSON là file văn bản thuần có phần mở rộng .json, chứa một tài liệu JSON. Kiểu media của nó là application/json và nên được lưu ở dạng UTF-8. Những file JSON thường gặp là dữ liệu xuất từ ứng dụng và trang web (ví dụ Google Takeout hoặc dữ liệu tải về từ mạng xã hội), file cấu hình như package.json, phản hồi API được lưu xuống đĩa và tập dữ liệu để phân tích. Vì là văn bản thuần, file JSON an toàn khi mở – nó không thể chạy code.
Cách mở file JSON
| Ở đâu | Cách mở |
|---|---|
| Windows | Nhấp chuột phải vào file → Open with (Mở bằng) → Notepad, hoặc dùng trình soạn thảo code như VS Code. Kéo file vào cửa sổ trình duyệt cũng xem được. |
| Mac | Mở bằng TextEdit hoặc trình soạn thảo code, hoặc thả file vào cửa sổ trình duyệt. |
| iPhone và Android | Mở từ ứng dụng Tệp (Files) bằng trình xem văn bản, hoặc tải vào một công cụ xem JSON online – công cụ của chúng tôi chạy được trên điện thoại và file vẫn nằm trên thiết bị của bạn. |
| Trình duyệt web | Firefox có sẵn trình xem JSON; trên mọi trình duyệt, công cụ xem JSON online hiển thị dữ liệu dạng cây thu gọn được. |
| Excel | Trên Windows, dùng Data → Get Data → From File → From JSON, hoặc chuyển file bằng công cụ JSON sang CSV trước. |
So sánh JSON và XML
| JSON | XML | |
|---|---|---|
| Cú pháp | dấu ngoặc nhọn, ngoặc vuông, cặp tên/giá trị | thẻ mở và thẻ đóng |
| Kiểu dữ liệu | chuỗi, số, boolean, null, đối tượng, mảng | chỉ có văn bản, trừ khi schema định nghĩa kiểu |
| Kích thước | gọn | lớn hơn do có thẻ đóng |
| Chú thích | không | có |
| Thuộc tính, namespace | không | có |
| Mục đích sử dụng thường gặp | web API, cấu hình, cơ sở dữ liệu NoSQL | tài liệu, file văn phòng, SOAP và hệ thống doanh nghiệp |
JSON trong API và ứng dụng
Hầu hết web API gửi và nhận JSON. Client gửi request kèm header Content-Type: application/json, server trả về JSON, và chương trình chuyển nó thành đối tượng gốc của ngôn ngữ bằng JSON.parse trong JavaScript, json.loads trong Python hoặc json_decode trong PHP. JSON cũng là nền tảng của các file cấu hình như package.json và tsconfig.json, cơ sở dữ liệu dạng tài liệu như MongoDB, và đầu ra có cấu trúc của các mô hình AI.
Các lỗi JSON thường gặp
- Dấu phẩy thừa sau phần tử cuối cùng:
[1, 2,] - Dấu nháy đơn hoặc khóa không có dấu nháy:
{'a': 1},{a: 1} - Chú thích như
// note - Thiếu dấu phẩy hoặc dấu ngoặc giữa các phần tử
- Giá trị của JavaScript hoặc Python như
undefined,NaNhayTrue
Hãy dán dữ liệu vào công cụ kiểm tra JSON để xem chính xác dòng và cột bị lỗi, hoặc để Sửa lỗi tự động khắc phục.
JSON5, JSONC và JSON Lines
- JSON5 – một tập cha nới lỏng hơn, dành cho file viết tay: cho phép chú thích, dấu phẩy thừa, nháy đơn, khóa không có dấu nháy và số thập lục phân. Trình phân tích JSON chuẩn không đọc được JSON5.
- JSONC – JSON có chú thích, dùng cho phần cài đặt của VS Code và
tsconfig.json. - JSON Lines / NDJSON (
.jsonl) – mỗi dòng một giá trị JSON, lý tưởng cho log và truyền luồng (streaming) các tập dữ liệu lớn. - GeoJSON – JSON cho dữ liệu địa lý, được định nghĩa trong RFC 7946.
Câu hỏi thường gặp
JSON có phải là ngôn ngữ lập trình không?
Không. JSON là một định dạng dữ liệu: nó mô tả dữ liệu nhưng không thể chứa logic, hàm hay chú thích.
JSON có giống đối tượng JavaScript không?
Không. JSON là văn bản trông giống object literal của JavaScript nhưng nghiêm ngặt hơn: khóa và chuỗi phải dùng dấu nháy kép, và không cho phép hàm, undefined hay chú thích. JSON.parse sẽ chuyển văn bản đó thành một đối tượng thực sự.
Làm sao để tạo file JSON?
Viết dữ liệu trong bất kỳ trình soạn thảo văn bản nào theo các quy tắc ở trên và lưu ở dạng UTF-8 với phần mở rộng .json. Hãy kiểm tra bằng công cụ kiểm tra JSON trước khi sử dụng.
Cập nhật lần cuối: