1. Json trong JavaScript là gì?

JSON là viết tắt của JavaScript Object Notation . Dịch nôm na ra tiếng việt thì nó nghĩa là là “Kí hiệu object trong Js”. Nó là một kiểu định dạng dữ liệu tuân theo một quy luật nhất định mà hầu hết các ngôn ngữ lập trình hiện nay đều có thể đọc được. Với mục đích thiết kế cho việc chuyển đổi dữ liệu, JSON được cung cấp dưới định dạng chuỗi ký tự (text format) có cấu trúc giúp nó hoàn toàn độc lập với bất cứ các ngôn ngữ lập trình nào mà bạn quen thuộc cũng có thể dễ dàng tạo ra như: C, C++, C#, Java, JavaScript, PHP, Python… JSON độc lập với ngôn ngữ, nó không phụ thuộc vào một môi trường hay ngôn ngữ lập trình nào.

Định dạng JSON sử dụng các cặp keyvalue để dữ liệu sử dụng. Trong JSON, các key phải là kiểu chuỗi, viết trong cặp nháy kép

'{"name":"Thành", "age":19, "car":null}'

Với ví dụ này ta đã định nghĩa đối tượng có 3 thuộc tính:

  • name : tên
  • age : tuổi
  • car : xe

Mỗi thuộc tính này có một giá trị. Và nếu ta phân tích cú pháp chuỗi JSON bằng Js, ta có thể truy cập dữ liệu dưới dạng một đối tượng

let personName = obj.name;
let personAge = obj.age;

2. Đối tượng Json

Đối tượng JSON đặt trong dấu { } , viết theo từng cặp key:value và cách nhau bởi dấu hai chấm . Trong đó key phải là chuỗi (đặt trong nháy), value có thể là các kiểu (string, number, object, array, boolean or null). Từng cặp key:value cách nhau bởi dấu phẩy.

Ví dụ:

<script>
var Person= { "id":1, "ten":"Thành", "age":19,"car":null}
var website = {"protocol":"https", "domain":"laptrinhtudau.com"}; 
console.log(sp);
console.log(website);
</script>

3. So sánh Json với XML

Khi một client gửi request lên server thì server có thể gửi kết quả trả về dạng JSON (hoặc XML). Client bóc tách kết quả đó và dựa vào key để lấy ra thông tin cần thiết. Việc sử dụng JSON thay vì XML giúp giảm thời gian truy xuất dữ liệu và giảm dung lượng gói tin.

Ví dụ:

Khi sử dụng JSON

{
 "type": "laptop",
 "brand": "Acer",
 "operating system": "Windows 11",
 "graphic card": "NVIDIA"
}

Khi sử dụng XML

<type> laptop </type>
<brand> Acer </brand>
<operatin_system> Windows 11 </operating_system>
<graphic_card> NVIDIA </graphic_card>

Rõ ràng, XML phức tạp hơn JSON ở chỗ là XML cần phải có 2 thành phần thẻ đóng và thẻ mở để xác định một thuộc tính. Trong khi JSON thì chỉ cần 1 thành phần là key .
Ta có thể hiểu JSON chính là một phiên bản rút gọn của Js Object .

4. Tại sao lại sử dụng Json?

Vì JSON có định dạng là text, cho nên dễ dàng để gửi và nhận qua mạng với các ứng dụng khác, website khác. Bởi vậy JSON được dùng như là 1 định dạng dữ liệu phải có trong các ngôn ngữ lập trình hiện nay như Js, C#, PHP, Java… Dữ liệu JSON là dữ liệu có cấu trúc, dễ phân tách, trích xuất ra để xử lý.

Trong việc trao đổi dữ liệu giữa trình duyệt và máy chủ thì nó chỉ có thể có dạng văn bản. JSON có thể dễ dàng được gửi giữa các máy tính và được sử dụng bởi bất kỳ ngôn ngữ lập trình nào. Ta có thể dễ dàng chuyển đổi bất kỳ đối tượng Js nào thành JSON rồi gửi JSON đến server và ngược lại. Ta cũng có thể chuyển đổi bất kỳ JSON nào nhận được từ server thành các đối tượng Js. Bằng cách này ta có thể dễ dàng làm việc với dữ liệu dưới dạng đối tượng Js mà không cần phân tích cú pháp hay phải dịch nó một cách phức tạp.

Js có một chức năng tích hợp để chuyển đổi các chuỗi JSON thành các đối tượng Js là JSON.parse() . Js cũng có một hàm tích hợp để chuyển đổi một đối tượng thành một chuỗi JSON là JSON.stringify() (ta sẽ học kỹ hơn ở những bài sau).