JSON là gì? Cấu trúc và ứng dụng JSON cho người mới
Thịnh Văn Hạnh
02/06/2023
2528 Lượt xem
Chia sẻ bài viết
JSON (JavaScript Object Notation) là một định dạng trao đổi dữ liệu dạng văn bản, nhẹ, dễ đọc và được hầu hết các ngôn ngữ lập trình hỗ trợ. Đặc biệt, JSON không phải là một ngôn ngữ lập trình mà chỉ là một chuẩn dữ liệu độc lập, đồng thời có thể được tạo ra và xử lý bởi JavaScript, Python, Java, PHP hay C#. Quan trọng hơn, JSON sở hữu cấu trúc rất đơn giản gồm hai thành phần chính là Object (đối tượng) và Array (mảng), được xây dựng từ các cặp key-value dễ hiểu cho cả người và máy.
Để giúp người mới bắt đầu nắm vững kiến thức nền tảng này, bài viết dưới đây BKNS sẽ đi từ định nghĩa, phân tích cấu trúc, so sánh với XML, làm rõ ứng dụng thực tế cho đến hướng dẫn cách đọc – viết một file JSON hoàn chỉnh. Hãy cùng khám phá chi tiết ngay sau đây.
Tóm Tắt Bài Viết
JSON là gì?
JSON là viết tắt của “JavaScript Object Notation” (định dạng đối tượng JavaScript). Đây là một định dạng dữ liệu phổ biến được sử dụng để truyền tải và lưu trữ dữ liệu dễ dàng trong các ứng dụng web và di động.
JSON là một cú pháp dựa trên văn bản (text-based) và độc lập với ngôn ngữ lập trình, cho phép biểu diễn cấu trúc dữ liệu theo dạng các cặp “key-value” (khóa-giá trị). Các đối tượng JSON được bao bọc bởi cặp dấu ngoặc nhọn {} và gồm các cặp key-value được phân tách bằng dấu phẩy.

JSON có phải là một ngôn ngữ lập trình không?
JSON không phải là một ngôn ngữ lập trình mà là một định dạng dữ liệu (data format) độc lập, được thiết kế chuyên biệt để biểu diễn và trao đổi thông tin có cấu trúc. Đây là một trong những ngộ nhận phổ biến nhất đối với người mới tiếp cận JSON, vì vậy cần làm rõ ngay từ đầu để tránh nhầm lẫn trong quá trình học tập và sử dụng.
Cụ thể hơn, sự khác biệt giữa JSON và một ngôn ngữ lập trình nằm ở ba lý do chính sau đây.
- JSON không có khả năng thực thi logic. Một ngôn ngữ lập trình như JavaScript, Python hay Java đều sở hữu các cấu trúc điều khiển như vòng lặp, câu lệnh điều kiện, hàm và biến để xử lý logic nghiệp vụ. Trong khi đó, JSON chỉ đơn thuần lưu trữ dữ liệu tĩnh dưới dạng văn bản, không chứa bất kỳ đoạn mã thực thi nào.
- JSON không có trình biên dịch hay trình thông dịch riêng. Một ngôn ngữ lập trình cần có compiler hoặc interpreter để chuyển đổi mã nguồn thành chương trình chạy được. JSON ngược lại chỉ cần được “giải mã” (parse) bởi một ngôn ngữ lập trình khác để chuyển thành cấu trúc dữ liệu mà chương trình có thể sử dụng, ví dụ như hàm json_decode() trong PHP hay JSON.parse() trong JavaScript.
- JSON hoàn toàn độc lập với mọi ngôn ngữ lập trình. Mặc dù cú pháp JSON bắt nguồn từ cách biểu diễn đối tượng trong JavaScript, nhưng JSON có thể được tạo ra và đọc bởi bất kỳ ngôn ngữ nào như Python, Java, C#, Ruby hay Go mà không gặp trở ngại nào về tương thích. Chính nhờ đặc tính độc lập này, JSON mới có thể trở thành cầu nối trao đổi dữ liệu giữa các hệ thống được viết bằng những ngôn ngữ hoàn toàn khác nhau.
Ví dụ về cấu trúc JSON là gì?
Định dạng của JSON là “key – value”, hỗ trợ các cấu trúc dữ liệu như đối tượng và mảng. Có thể xem ví dụ dưới đây.
Ví dụ này định nghĩa một đối tượng nhân viên: Gồm 2 bản ghi nhân viên (đối tượng):
{
"employees":[
{"firstName":"Hailey", "lastName":"Summer"},
{"firstName":"Thanh Huyen", "lastName":"Le"},
]
}
Hoặc:
{
"name" : "BKNS"
"title": "BKNS - Nhà cung cấp tên miền, dịch vụ server, máy chủ hàng đầu Việt Nam",
"description": "Nhà cung cấp dịch vụ tên miền, máy chủ, Cloud Server, thiết kế website,... uy tín, chất lượng, hàng đầu Việt Nam. Bạn hãy yên tâm lựa chọn sử dụng dịch vụ của BKNS."
}
Có thể thấy qua 2 ví dụ thì JSON sử dụng 2 phần đó là key và value. Và một số lưu ý về cú pháp của JSON như sau:
- Cấu trúc trong chuỗi JSON được nằm trong dấu ngoặc nhọn {}.
- Còn các key và value sẽ được đặt trong dấu “”.
- Sử dụng dấu “,” để phân tách dữ liệu với nhau.
- Key nên đặt chữ cái không dấu hoặc số.
- Dấu ngoặc nhọn dành cho đối tượng (object).
- Dấu ngoặc vuông dành cho mảng (array).
File JSON thường sẽ được lưu với phần mở rộng là .json hoặc .js. Ngoài ra, nó có thể JSON file có thể lưu với nhiều định dạng khác nữa.
Ký hiệu đối tượng JavaScript
Định dạng JSON là gì? Nó hoàn toàn giống với mã để tạo các đối tượng JavaScript. Do sự giống nhau này, JavaScript có thể dễ dàng chuyển đổi dữ liệu JSON thành các đối tượng JavaScript gốc.
Cú pháp JSON có nguồn gốc từ cú pháp ký hiệu đối tượng JavaScript, nhưng định dạng JSON chỉ là văn bản (text). Code để đọc và tạo dữ liệu JSON có thể được viết bằng bất kỳ ngôn ngữ lập trình nào.
Cấu trúc về chuỗi JSON

Object là gì?
Object trong JSON được thể hiện bằng dấu ngoặc nhọn {}. Object trong JSON cũng khá giống với Object trong JavaScript nhưng có một số điểm giới hạn như:
- Key (thuộc tính): Phải luôn được đặt trong dấu ngoặc kép “”.
- Value: Chỉ được sử dụng các kiểu dữ liệu cơ bản như number, string, arrays. objects, null và không được sử dụng funtion, date, hay undefined.
- Không đặt dấu “,” cuối cùng như bên Object của JavaScript.
Các kiểu Object
Object có 2 kiểu phổ biến là:
- Object in Array.
- Nest Object.
Để hiểu rõ hơn về 2 kiểu Object trên, bạn có thể tham khảo qua ví dụ dưới đây:
- Object in Array:
[{
"name" : "Minh",
"age" : "29",
"gender" : "Male",
"height": "1.77"
},
{
"name" : "Lam",
"age" : "23",
"gender" : "Male",
"height" : "1m75"
];
- Nest Object:
{
"Minh" : {
"name" : "Minh",
"age" : "29",
"gender" : "Male",
"height": "1.77"
},
"Lam" : {
"name" : "Lam",
"age" : "23",
"gender" : "Male",
"height" : "1m75"
}
}
Dữ liệu JSON – Name & Value
Dữ liệu JSON được viết dưới dạng cặp name/value, giống như các thuộc tính đối tượng JavaScript. Một cặp name/value bao gồm một tên trường (trong dấu ngoặc kép), theo sau là dấu hai chấm, theo sau là một giá trị:
"firstName": "Hailey"
Tên JSON yêu cầu dấu ngoặc kép. Tên JavaScript thì không.
Mảng JSON
Mảng JSON được viết bên trong dấu ngoặc vuông. Giống như trong JavaScript, một mảng có thể chứa các đối tượng:
"employees": [
{"firstName":"Delie", "lastName":"Gordon"},
{"firstName":"Alex", "lastName":"Will"},
{"firstName":"Brenny", "lastName":"Brown"}
]
Trong ví dụ trên, đối tượng “nhân viên” là một mảng và nó chứa ba đối tượng. Mỗi đối tượng là một bản ghi của một người (có tên và họ).
Chuyển đổi một văn bản JSON thành một đối tượng JavaScript
Một cách sử dụng JSON phổ biến đó là đọc dữ liệu từ máy chủ web và hiển thị dữ liệu trong trang web. Để đơn giản, điều này có thể được thể hiện bằng cách sử dụng một string làm đầu vào.
- Đầu tiên, tạo một string JavaScript chứa cú pháp JSON:
var text = '{ "employees" : [' +
'{ "firstName":"Delie" , "lastName":"Gordon" },' +
'{ "firstName":"Alex" , "lastName":"Will" },' +
'{ "firstName":"Brenny" , "lastName":"Brown" } ]}';
- Sau đó, sử dụng hàm tích hợp JavaScript JSON.parse() để chuyển đổi string thành đối tượng JavaScript:
var obj = JSON.parse(text);
- Cuối cùng, sử dụng đối tượng JavaScript mới trong trang của bạn:
Ví dụ
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML =
obj.employees[1].firstName + " " + obj.employees[1].lastName;
</script>
Ứng dụng JSON khi nào?
Khi bạn muốn lưu trữ dữ liệu dưới dạng metadata từ phía server. Sau đó, chuỗi JSON sẽ được lưu vào database và khi cần dữ liệu thì nó sẽ được giải mã. Để rõ hơn, thì bạn có thể phát hiện một trường hợp khá phổ biến trong JavaScript mà dữ liệu được định dạng theo format JSON đó là AJAX request.
JSON khác với XML?
JSON khác XML chủ yếu ở cú pháp, dung lượng và tốc độ xử lý, trong đó JSON thắng về sự đơn giản, dung lượng nhẹ và tốc độ phân tích nhanh hơn, còn XML mạnh hơn về khả năng mô tả siêu dữ liệu (metadata) và hỗ trợ namespace. Tuy nhiên, để hiểu rõ bản chất khác biệt giữa hai định dạng này, cần phân tích từng tiêu chí so sánh cụ thể.
Bảng dưới đây tổng hợp các tiêu chuẩn so sánh chính giữa JSON và XML, giúp dễ dàng hình dung các sự khác biệt:
| Tiêu chí | JSON | XML |
|---|---|---|
| Cú pháp | Cặp key-value đơn giản, dùng {} và [] | Cấu trúc thẻ mở/đóng theo dạng cây phân cấp |
| Dung lượng | Nhẹ hơn do không cần thẻ đóng/mở lặp lại | Nặng hơn vì mỗi phần tử đều có thẻ đóng riêng |
| Tốc độ xử lý | Phân tích (parse) nhanh hơn nhờ cấu trúc gọn | Xử lý chậm hơn do cấu trúc phức tạp |
| Khả năng đọc | Dễ đọc, gần với cách tư duy lập trình | Dễ đọc nhưng dài dòng hơn |
| Hỗ trợ comment | Không hỗ trợ comment trong cú pháp chuẩn | Hỗ trợ comment thông qua thẻ |
| Hỗ trợ Array | Hỗ trợ trực tiếp bằng dấu ngoặc vuông | Phải biểu diễn gián tiếp qua nhiều thẻ con cùng tên |
Ngược lại với JSON, XML lại có lợi thế trong các trường hợp cần mô tả không gian tên hỗn hợp siêu dữ liệu, hỗ trợ để tránh xung đột thẻ tên hoặc khi hệ thống yêu cầu khả năng xác thực dữ liệu nghiêm ngặt qua DTD hoặc Lược đồ XML. Chính vì lý do này, XML vẫn được duy trì trong một số lĩnh vực như tài khoản doanh nghiệp, cấu hình hệ thống cũ (hệ thống kế thừa) hoặc các giao thức trao đổi dữ liệu trong ngành tài chính chính, ngân hàng.
Dù vậy , trong bối cảnh phát triển web và ứng dụng hiện đại, JSON vẫn đang được ưu tiên áp dụng nhờ tốc độ xử lý nhanh chóng và khả năng kết hợp liền mạch với JavaScript – ngôn ngữ phổ biến nhất trong giao diện người dùng phát triển.
Lời kết
Bài viết trên, BKNS đã tổng hợp những thông tin và kiến thức cần thiết nhất giúp bạn hiểu rõ hơn về JSON là gì?. Hy vọng qua bài viết này sẽ giúp ích cho bạn trong các công việc cần thiết.
Đọc thêm các bài viết hữu ích và tương tự trên BKNS nữa bạn nhé.
>> Đọc thêm các bài viết khác:
Edge Computing là gì? Tầm quan trọng của Edge Computing trong xử lý dữ liệu
Proxmox là gì? Những điều về môi trường ảo Proxmox có thể bạn chưa biết
Hypervisor Là Gì? Hypervisor hoạt động như thế nào?



































