JSON là một trong những định nghĩa khá phổ biến trong lĩnh vực lập trình, được sử dụng phổ biến bởi nhiều lập trình viên và thay thế cho những định dang dữ liệu truyền thống. Tuy nhiên, nhiều người đôi khi biết cách sử dụng nhưng chưa thực sự hiểu về khái niệm JSON là gì. Vậy trong bài viết này cùng chúng tôi tìm hiểu thêm về JSON nhé!

Định nghĩa về JSON

Cùng tìm hiểu về định nghĩa JSON và file JSON để biết được cơ bản về khái niệm lập trình này.

JSON là gì?

JSON là từ viết tắt của JavaScript Object Notation, được hiểu là một định dạng trao đổi dữ liệu dựa trên văn bản. JSON thường được sử dụng chính trong biểu diễn những cấu trúc và các đối tượng dữ liệu cơ bản dựa trên trình duyệt website. Hiểu cơ bản, JSON là định dạng hỗ trợ lưu giữ những thông tin có cấu trúc và sử dụng trong truyền tải thông tin giữa server và client.

JSON viết tắt của JavaScript Object Notation
JSON viết tắt của JavaScript Object Notation

JSON còn thường được sử dụng trong môi trường lập trình desktop và server. Định dạng này ban đầu được phát triển dựa trên JavaScript và được ra mắt với vai trò đầu tiên là ngôn ngữ kịch bản cho các trình duyệt như Web Netscape Navigator.

JSON ra mắt và được sử dụng trong JavaScript hướng đến tổ chức dữ liệu thay cho sự cồng kềnh của XML. Tương đồng với XML, JSON có thể kết hợp với đa dạng ngôn ngữ lập trình từ C++, Java đến Lips và rất nhiều ngôn ngữ khác mà không bị phụ thuộc riêng. Tài liệu viết dạng JSON tương đối nhẹ và có khả năng khai thác, thực thi nhanh chóng trên máy chủ.

File JSON là gì?

Tương tự XML lưu trong file .xml, dữ liệu dạng JSON sẽ được lưu trong những tệp có phần mở rộng dạng .json. Đây là tệp dữ liệu thuần túy và người dùng có thể sử dụng nhiều phần mềm đọc văn bản để mở được file JSON đơn giản và nhanh chóng.

JSON file
JSON file

Cấu trúc của JSON

Cùng tìm hiểu xem cấu trúc của kiểu định dạng trao đổi dữ liệu JSON được thể hiện như thế nào thông qua cú pháp và các biến giá trị liên quan.

Cú pháp viết JSON như thế nào?

Để tạo ra một file JSON hoàn chỉnh, người lập trình cần tuân thủ đúng cú pháp viết, đây là điểm mà bất kỳ ai mới học đều phải nắm rõ. Hai yếu tố chính của một Object JSON bao gồm: keys và values.

  • Keys: Luôn là chuỗi và luôn được đặt trong dấu ngoặc kép.
  • Values: Có thể định dạng chuỗi, kiểu dữ liệu Boolean, Mảng hoặc một đối tượng Object.

Mỗi một Object JSON sẽ bắt đầu và kết thúc gọn trong một cặp ngoặc nhọn {}, có thể có hai hoặc nhiều hơn các cặp key và value, mỗi cặp này lại được phân tách nhau bởi dấu phẩy (,). Cặp key/ value tách nhau bởi dấu hai chấm (:).

Có thể bạn quan tâm:

Những loại value sử dụng trong JSON là gì?

Trong JSON, người dùng có thể sử dụng nhiều kiểu dữ liệu đa dạng như đã nêu trên

Mảng Array

Array là bộ sưu tập các values với thứ tự nhất định. Trong JSON, một Array được bao quanh một cặp ngoặc vuông ([]) và từng value bên trong sẽ được phân tách bởi một dấu phẩy (,). Một value kiểu array có thể chứa các object JSON tức là nó cũng sử dụng cùng khái niệm cặp giá trị đi kèm key – value. Đây là dạng sử dụng phổ biến nhất trong các file JSON.

Ví dụ về mảng trong JSON như sau:

{

“scores”: [

{

“Away_Score”: 2,

“Away_Team”: “Newcastle”

},

{

“Away_Score”: 2,

“Away_Team”: “Napoli”

}

]

}

Đối tượng Object

Một Object sẽ chưa cả key và value. Hai phần này cách nhau bởi dấu hai chấm (:) và cách các cặp khác bởi dấu phẩy (,). Trong JSON, Object được xem như một value và phải tuân theo những quy tắc tương tự như một Object.

Ví dụ về Object như sau:

{

“employees”: {

“firstName”: “Dong”,

“lastName”: “Viet”

}

}

Chuỗi String

Chuỗi được sử dụng cho value của một đối tượng trong JSON, được sử dụng khá nhiều. Nó là tập hợp bao gồm số 0 và các ký tự Unicode, được bao quanh bởi dấu ngoặc kép (“”).

Ví dụ chuỗi trong JSON: “firstName”: “Dong”

Số Number

Số (number) cũng được sử dụng cho các value trong Object JSON, có thể là số nguyên hoặc số thực, sử dụng cho những thuộc tính mang giá trị số.

Ví dụ về số number trong JSON: {“tuoi”: “22”}

Boolean

Boolean là kiểu gồm hai giá trị đúng (true) hoặc sai (false), sử dụng biểu diễn value trong cặp key/ value của đối tượng trong JSON

Ví dụ về kiểu bool trong JSON: {“married”: “false” }

Rỗng Null

Rỗng biểu thị không có thông tin. Sử dụng không phổ biến nhưng vẫn là biểu diễn cho value trong đối tượng thuộc  JSON.

Ví dụ: {“name”: “null” }

JSON và những ưu điểm – nhược điểm liên quan

JSON có khá nhiều những ưu điểm mà khiến định dạng này ngày càng phổ biến và được sử dụng rỗng rãi hơn so với các kiểu định dạng trao đổi dữ liệu khác.

Ưu điểm của JSON là gì?

Một vài những ưu điểm có thể kể đến của JSON đó là:

  • Cách viết ngắn gọn và dễ hiểu: Khác với các định dạng thường thấy, JSON tối ưu được cách thể hiện của dữ liệu có cấu trúc, dễ dàng quan sát và phù hợp cho những hệ thống phức tạp để đơn giản hóa quá trình xử lý.
  • Thao tác nhanh hơn: Để phân tích được cấu trúc và cú pháp sử dụng của XML thì cần sử dụng đến các thao tác DOM để xử lý trong trường hợp các tệp XML lớn. Ngược lại, file JSON lại không yêu cầu dữ liệu cao từ đó giảm chí phí và tăng tốc độ làm việc.
  • Dữ liệu có cấu trúc: JSON sử dụng cấu trúc thông tin dữ liệu dạng bản đồ trong khi XML lại sử dụng dạng cây truy xuất theo các node. Chính vì vậy JSON tạo thuận lợi cho mô hình dự đoán cũng như rất dễ hiểu.

Nhược điểm cơ bản của JSON

Một vài khuyết điểm là hạn chế đang được cải thiện của JSON như:

  • Không tích hợp Schema: Tuy người dùng có thể trình bày dữ liệu theo nhu cầu, nhưng việc không có Schema sẽ gây ra những trường hợp tạo sai, nhầm lẫn.
  • Thiếu định dạng Date: Vì không có dạng Date cho value biểu thị nên thay vì dùng Date như trong XML, người dùng phải thay thế bằng string (chuỗi) để biểu diễn ngày.
  • Chưa phải là ngắn gọn nhất: Tuy có hiệu quả cú pháp đáng kể so với XML nhưng JSON vẫn chưa phải là định dạng dữ liệu ngắn gọn nhất vì vậy trong những hệ thống đồi hỏi độ phức tạp cao bạn nên sử dụng một định dạng tối ưu hơn JSON.

Có gì khác nhau giữa JSON và XML?

Trong những năm gần đây, JSON dường như đang khiến cho XML thất thế, vậy đâu là yếu tố mấu chốt khiến JSON ngày càng được sử dụng rộng rãi?

So sánh JSON và XML

Dưới đây là ví dụ về các dữ liệu được định dạng bởi JSON và XML 

Hai biểu thị khác nhau giữa JSON và XML
Hai biểu thị khác nhau giữa JSON và XML

Từ so sánh trên ta thấy những điểm tương đồng giữa hai kiểu định dạng này như sau:

  • Hai kiểu định dạng đều tự mô tả dữ liệu và người đọc có thể hiểu cơ bản được nội dung.
  • Hai kiểu định dạng này cũng có cấu trúc phân cấp (values in value)
  • JSON và XML đều có thể được tìm nạp thông qua XMLHttpRequest.

Tuy nhiên ta có thể dễ dàng nhận thấy sự khác biệt rõ ràng của JSON so với XML đó là:

  • JSON không sử dụng thẻ đóng mở riêng biệt cho từng cặp.
  • JSON ngắn gọn hơn rất nhiều về cú pháp
  • JSON có thể tạo nhanh và dễ dàng hơn.
  • JSON có thể sử dụng Array mảng trong cấu trúc của file.

JSON có hiệu quả hơn XML không?

Để phân tích cú pháp thì XML khó hơn khá nhiều so với JSON. Còn JSON có thể phân tích cấu trúc cú pháp thành một đối tượng JavaScript đơn giản chỉ với lệnh. JSON hãy chuyển từ dữ liệu JavaScript Types sang JSON cũng nhanh chóng bằng lệnh .Stringify. 

JSON có hiệu quả hơn XML?
JSON có hiệu quả hơn XML?

JSON cũng nhanh hơn XML, dễ dàng mở rộng mà lại không cần sử dụng cú pháp phức tạp. Nói chung lại, JSON được sử dụng nhiều hơn so với XML và có nhiều ứng dụng hơn so với định dạng kiểu cũ.

Mong rằng qua những chia sẻ trên đây, chúng tôi đã giúp các bạn hiểu kỹ hơn về JSON và trả lời được câu hỏi JSON là gì. Trong tương lai những hạn chế kể trên của JSON chắc chắn sẽ được khắc phục và trở nên hoàn thiện hơn, trở thành định dạng trao đổi dữ liệu tối ưu hóa được quá trình xử lý chung.

FPT Aptech trực thuộc Tổ chức Giáo dục FPT có hơn 25 năm kinh nghiệm đào tạo lập trình viên quốc tế tại Việt Nam, và luôn là sự lựa chọn ưu tiên của các sinh viên và nhà tuyển dụng.
0981578920
icons8-exercise-96