1. JSON là gì?
JSON (JavaScript Object Notation) là một định dạng trao đổi dữ liệu nhẹ, dễ đọc, dễ ghi cho con người, và dễ phân tích, sinh dữ liệu cho máy tính. JSON được sử dụng phổ biến trong lập trình web, API, và nhiều hệ thống lưu trữ cấu hình.
Đặc điểm chính:
- Dạng văn bản (text-based), mã hóa bằng UTF-8.
- Dễ hiểu, dễ phân tích (parse).
- Độc lập ngôn ngữ, nhưng cú pháp dựa trên JavaScript.
- Thích hợp để trao đổi dữ liệu giữa máy chủ và trình duyệt.
Ví dụ một đối tượng JSON:
{
“name”: “Nguyễn Văn A”,
“age”: 25,
“email”: “example@gmail.com”,
“skills”: [“JavaScript”, “PHP”, “Python”],
“isActive”: true
}
2. Cấu trúc cơ bản của JSON
JSON gồm hai kiểu cấu trúc chính:
- Đối tượng (Object)
- Bao gồm các cặp key–value.
- Được bao bọc bởi {}.
- Key bắt buộc là chuỗi (string) đặt trong dấu ngoặc kép ” “.
- Value có thể là: string, number, boolean, null, object, array.
Ví dụ:
{
“username”: “trungvu”,
“points”: 100
}
- Mảng (Array)
- Danh sách các giá trị, phân tách bằng dấu phẩy.
- Được bao bọc bởi [].
Ví dụ:
[“HTML”, “CSS”, “JavaScript”]
3. Kiểu dữ liệu hợp lệ trong JSON
JSON hỗ trợ 6 kiểu dữ liệu:
- String – Chuỗi ký tự trong dấu ngoặc kép ” “
- Number – Số nguyên hoặc số thực
- Boolean – true hoặc false
- Null – Giá trị rỗng null
- Object – Dạng { key: value }
- Array – Dạng [value1, value2, …]
Ví dụ kết hợp:
{
“id”: 101,
“name”: “Laptop”,
“price”: 1500.75,
“inStock”: true,
“tags”: [“electronics”, “computer”],
“details”: {
“brand”: “Dell”,
“model”: “XPS 15”
},
“discount”: null
}
4. JSON trong JavaScript (Cơ bản)
JavaScript cung cấp sẵn hai hàm làm việc với JSON:
- JSON.stringify(obj) – Chuyển Object → JSON string
- JSON.parse(jsonString) – Chuyển JSON string → Object
Ví dụ:
// Object → JSON
let user = { name: “Trung”, age: 30 };
let jsonData = JSON.stringify(user);
console.log(jsonData); // {“name”:”Trung”,”age”:30}
// JSON → Object
let jsonString = ‘{“name”:”Trung”,”age”:30}’;
let obj = JSON.parse(jsonString);
console.log(obj.name); // Trung
5. JSON nâng cao
5.1. JSON Lồng nhau (Nested JSON)
JSON có thể chứa Object hoặc Array bên trong nhau.
{
“company”: “TechCorp”,
“departments”: [
{
“name”: “IT”,
“employees”: [
{ “id”: 1, “name”: “A” },
{ “id”: 2, “name”: “B” }
]
},
{
“name”: “HR”,
“employees”: []
}
]
}
5.2. Làm việc với JSON trong PHP
PHP có hai hàm:
- json_encode($array) – Array/Object → JSON string.
- json_decode($json, true) – JSON string → Array (nếu true) hoặc Object.
Ví dụ:
// Array → JSON
$data = [“name” => “Trung”, “age” => 30];
$json = json_encode($data);
echo $json; // {“name”:”Trung”,”age”:30}
// JSON → Array
$jsonString = ‘{“name”:”Trung”,”age”:30}’;
$array = json_decode($jsonString, true);
echo $array[“name”]; // Trung
5.3. JSON trong API
JSON là định dạng mặc định của hầu hết các REST API.
Ví dụ response từ API:
{
“status”: “success”,
“data”: {
“id”: 1,
“title”: “Bài viết JSON”
}
}
5.4. JSON Schema – Xác thực dữ liệu
Để đảm bảo dữ liệu JSON đúng định dạng, ta dùng JSON Schema.
Ví dụ Schema:
{
“type”: “object”,
“properties”: {
“name”: { “type”: “string” },
“age”: { “type”: “number” }
},
“required”: [“name”, “age”]
}
Công dụng: xác thực dữ liệu khi nhận từ API.
5.5. Tối ưu JSON (Minify & Pretty)
- Minify: Loại bỏ khoảng trắng để giảm dung lượng.
- Pretty Print: Thêm tab, xuống dòng để dễ đọc.
Trong JavaScript:
JSON.stringify(obj, null, 2); // Pretty print
6. Ưu và nhược điểm của JSON
Ưu điểm:
- Nhẹ, dễ đọc, dễ ghi.
- Phổ biến, được hỗ trợ hầu hết ngôn ngữ.
- Chuyển đổi nhanh chóng giữa object và string.
Nhược điểm:
- Không hỗ trợ comment.
- Không lưu được các kiểu dữ liệu phức tạp như hàm (function), Date phải chuyển sang string.
7. Kết luận
JSON là định dạng dữ liệu chuẩn mực trong lập trình hiện đại, đặc biệt cho web và API. Việc nắm vững từ cơ bản đến nâng cao giúp bạn:
- Trao đổi dữ liệu giữa client–server dễ dàng.
- Tích hợp API nhanh chóng.
- Xử lý dữ liệu cấu hình, lưu trữ linh hoạt.




Để lại một bình luận
Bạn phải đăng nhập để gửi bình luận.