JSON là viết tắt của Ký hiệu đối tượng JavaScript. JSON là một định dạng trao đổi dữ liệu nhẹ tiêu chuẩn, nhanh chóng và dễ dàng để phân tích và tạo
JSON, giống như XML, là một định dạng dựa trên văn bản dễ viết và dễ hiểu đối với cả người và máy tính, nhưng không giống như XML, các cấu trúc dữ liệu JSON chiếm ít băng thông hơn so với các phiên bản XML của chúng. JSON dựa trên hai cấu trúc cơ bản
- Mục tiêu. Điều này được định nghĩa là một tập hợp các cặp khóa/giá trị [i. e.
0]. Mỗi đối tượng bắt đầu bằng dấu ngoặc nhọn bên trái{ "fruits": [ "Apple", "Banana", "Strawberry", "Mango" ] }
1 và kết thúc bằng dấu ngoặc nhọn bên phải{ "fruits": [ "Apple", "Banana", "Strawberry", "Mango" ] }
2. Nhiều cặp khóa/giá trị được phân tách bằng dấu phẩy{ "fruits": [ "Apple", "Banana", "Strawberry", "Mango" ] }
3{ "fruits": [ "Apple", "Banana", "Strawberry", "Mango" ] }
- Mảng. Đây được định nghĩa là một danh sách các giá trị được sắp xếp. Một mảng bắt đầu bằng dấu ngoặc trái
4 và kết thúc bằng dấu ngoặc phải{ "fruits": [ "Apple", "Banana", "Strawberry", "Mango" ] }
5. Các giá trị được phân tách bằng dấu phẩy{ "fruits": [ "Apple", "Banana", "Strawberry", "Mango" ] }
3{ "fruits": [ "Apple", "Banana", "Strawberry", "Mango" ] }
Trong JSON, khóa luôn là chuỗi, trong khi giá trị có thể là
{
"fruits": [
"Apple",
"Banana",
"Strawberry",
"Mango"
]
}
7, {
"fruits": [
"Apple",
"Banana",
"Strawberry",
"Mango"
]
}
8, {
"fruits": [
"Apple",
"Banana",
"Strawberry",
"Mango"
]
}
9 hoặc 65, "Harry"=>80, "John"=>78, "Clark"=>90];
echo json_encode[$marks];
?>
0, 65, "Harry"=>80, "John"=>78, "Clark"=>90];
echo json_encode[$marks];
?>
1 hoặc thậm chí là 65, "Harry"=>80, "John"=>78, "Clark"=>90];
echo json_encode[$marks];
?>
2 hoặc 65, "Harry"=>80, "John"=>78, "Clark"=>90];
echo json_encode[$marks];
?>
3. Các chuỗi phải được đặt trong dấu ngoặc kép 65, "Harry"=>80, "John"=>78, "Clark"=>90];
echo json_encode[$marks];
?>
4 và có thể chứa các ký tự thoát như 65, "Harry"=>80, "John"=>78, "Clark"=>90];
echo json_encode[$marks];
?>
5, 65, "Harry"=>80, "John"=>78, "Clark"=>90];
echo json_encode[$marks];
?>
6 và 65, "Harry"=>80, "John"=>78, "Clark"=>90];
echo json_encode[$marks];
?>
7. Một đối tượng JSON có thể trông như thế này{
"book": {
"name": "Harry Potter and the Goblet of Fire",
"author": "J. K. Rowling",
"year": 2000,
"genre": "Fantasy Fiction",
"bestseller": true
}
}
Trong khi một ví dụ về mảng JSON sẽ giống như thế này
{
"fruits": [
"Apple",
"Banana",
"Strawberry",
"Mango"
]
}
Mẹo. Định dạng trao đổi dữ liệu là định dạng văn bản được sử dụng để trao đổi hoặc trao đổi dữ liệu giữa các nền tảng và hệ điều hành khác nhau. JSON là định dạng trao đổi dữ liệu nhẹ và phổ biến nhất cho các ứng dụng web
Phân tích cú pháp JSON bằng PHP
Cấu trúc dữ liệu JSON rất giống với mảng PHP. PHP có các hàm tích hợp để mã hóa và giải mã dữ liệu JSON. Các chức năng này lần lượt là
65, "Harry"=>80, "John"=>78, "Clark"=>90];
echo json_encode[$marks];
?>
8 và 65, "Harry"=>80, "John"=>78, "Clark"=>90];
echo json_encode[$marks];
?>
9. Cả hai chức năng chỉ hoạt động với dữ liệu chuỗi được mã hóa UTF-8Mã hóa dữ liệu JSON trong PHP
Trong PHP, hàm
65, "Harry"=>80, "John"=>78, "Clark"=>90];
echo json_encode[$marks];
?>
8 được sử dụng để mã hóa một giá trị sang định dạng JSON. Giá trị được mã hóa có thể là bất kỳ loại dữ liệu PHP nào ngoại trừ tài nguyên, như cơ sở dữ liệu hoặc xử lý tệp. Ví dụ dưới đây trình bày cách mã hóa một mảng kết hợp PHP thành một đối tượng JSON65, "Harry"=>80, "John"=>78, "Clark"=>90];
echo json_encode[$marks];
?>
Đầu ra của ví dụ trên sẽ như thế này
{"Phi-e-rơ". 65,"Harry". 80,"Giăng". 78"Clark". 90}
Tương tự, bạn có thể mã hóa mảng được lập chỉ mục PHP thành một mảng JSON, như thế này
Đầu ra của ví dụ trên sẽ như thế này
["Đỏ","Xanh lục","Xanh da trời","Cam","Vàng"]
Bạn cũng có thể buộc hàm
65, "Harry"=>80, "John"=>78, "Clark"=>90];
echo json_encode[$marks];
?>
8 trả về một mảng được lập chỉ mục PHP dưới dạng đối tượng JSON bằng cách sử dụng tùy chọn 2, như minh họa trong ví dụ bên dướiĐầu ra của ví dụ trên sẽ như thế này
{"0". "Đỏ","1". "Xanh","2". "Xanh dương","3". "Quả cam"}
Như bạn có thể thấy trong các ví dụ trên, một mảng không liên kết có thể được mã hóa thành mảng hoặc đối tượng. Tuy nhiên, một mảng kết hợp luôn được mã hóa thành đối tượng
Giải mã dữ liệu JSON trong PHP
Giải mã dữ liệu JSON đơn giản như mã hóa nó. Bạn có thể sử dụng hàm PHP
65, "Harry"=>80, "John"=>78, "Clark"=>90];
echo json_encode[$marks];
?>
9 để chuyển đổi chuỗi được mã hóa JSON thành kiểu dữ liệu PHP phù hợp. Ví dụ sau minh họa cách giải mã hoặc chuyển đổi một đối tượng JSON thành đối tượng PHPĐầu ra của ví dụ trên sẽ giống như thế này
object[stdClass]#1 [4] { ["Peter"]=> int[65] ["Harry"]=> int[80] ["John"]=> int[78] ["Clark"]=>
Theo mặc định, hàm
65, "Harry"=>80, "John"=>78, "Clark"=>90];
echo json_encode[$marks];
?>
9 trả về một đối tượng. Tuy nhiên, bạn có thể tùy chọn chỉ định tham số thứ hai 5 chấp nhận giá trị boolean mà khi được đặt là 6 Các đối tượng JSON được giải mã thành các mảng kết hợp. Nó là 7 theo mặc định. Đây là một ví dụĐầu ra của ví dụ trên sẽ giống như thế này
mảng[4] { ["Peter"]=> int[65] ["Harry"]=> int[80] ["John"]=> int[78] ["Clark"]=> int[90] }
Bây giờ, hãy xem một ví dụ sẽ chỉ cho bạn cách giải mã dữ liệu JSON và truy cập các phần tử riêng lẻ của đối tượng hoặc mảng JSON trong PHP
Peter; // Output: 65
echo $obj->Harry; // Output: 80
echo $obj->John; // Output: 78
echo $obj->Clark; // Output: 90
?>
Bạn cũng có thể lặp qua dữ liệu đã giải mã bằng cách sử dụng vòng lặp
8, như thế này$value]{
echo $key . "=>" . $value . "
";
}
echo "";
// Decode JSON data to PHP object
$obj = json_decode[$json];
// Loop through the object
foreach[$obj as $key=>$value]{
echo $key . "=>" . $value . "
";
}
?>
Trích xuất các giá trị từ dữ liệu JSON lồng nhau trong PHP
Các đối tượng và mảng JSON cũng có thể được lồng vào nhau. Một đối tượng JSON có thể tùy ý chứa các đối tượng JSON khác, mảng, mảng lồng nhau, mảng đối tượng JSON, v.v. Ví dụ sau sẽ chỉ cho bạn cách giải mã một đối tượng JSON lồng nhau và in tất cả các giá trị của nó trong PHP