Tin tức hoạt động và xu hướng sử dụng phần mềm, tính năng phần mềm được Bắc Việt cập nhật liên tục
JSON là khái niệm phổ biến trong lĩnh vực lập trình. Đây còn là một kiểu định dạng dữ liệu rất thường thấy trong phát triển ứng dụng công nghệ và được nhiều người dùng lựa chọn sử dụng nhất hiện nay. Hãy cùng BẮC VIỆT đi tìm hiểu về nguồn gốc, lợi ích, tầm quan trọng và lý do vì sao nên sử dụng JSON cho trình duyệt của bạn.
JSON là viết tắt của JavaScript Object Notation, đây là một định dạng trao đổi dữ liệu dựa trên văn bản, được sử dụng để biểu diễn các cấu trúc và đối tượng dữ liệu đơn giản dựa trên trình duyệt web. JSON là một tiêu chuẩn mở để trao đổi dữ liệu trên web.
JSON đôi khi còn được sử dụng trong môi trường lập trình máy tính để bàn và máy chủ. Kiểu định dạng này ban đầu dựa trên ngôn ngữ lập trình JavaScript và được giới thiệu là ngôn ngữ kịch bản trang cho trình duyệt Web Netscape Navigator.
JSON được sử dụng trong JavaScript để tổ chức dữ liệu như một sự thay thế cho XML. Một điểm tương tự như XML đó là JSON không phụ thuộc vào bất kỳ ngôn ngữ lập trình nào và có thể được kết hợp với C++, Java, Python, Lisp và nhiều ngôn ngữ khác. Các tài liệu JSON tương đối nhẹ và được thực thi một cách nhanh chóng trên máy chủ web.
Sau hơn 15 năm phát triển, JSON đã trở nên phổ biến trong cộng đồng lập trình. Ngày nay, đây là định dạng được lựa chọn cho hầu hết mọi dịch vụ web công khai và kể cả dịch vụ web riêng tư.
Định dạng JSON sử dụng các cặp key – value để dữ liệu sử dụng. Nó hỗ trợ các cấu trúc dữ liệu như đối tượng và mảng.
Thông thường JSON sẽ được trình bài theo 2 dạng sau:
“tên_thuộc_tính” :“giá_trị_thuộc_tính”.
Hoặc
“tên_thuộc_tính” : “giá_trị_số_của_thuộc_tính”.
Hai thành phần chính tạo nên JSON là Key và Value.
Ví dụ một tập tin có tên bacviet_info.json với nội dung như ở dưới đây sử dụng format kiểu JSON để lưu trữ thông tin:
{ "name" : "Bắc Việt", "title" : "Chuyên thiết kế website tại Hà Nội", "description" : "với hàng trăm mẫu website khác nhau cho hầu hết các lĩnh vực trên toàn quốc." }
Ta có thể thấy cú pháp của JSON có 2 phần đó là key và value:
File json có thể được lưu với bất kỳ phần mở rộng nào, tuy nhiên thông thường thì nó được lưu dưới phần mở rộng là .json hoặc .js.
JSON ban đầu được phát triển để dành phục vụ cho ứng dụng viết bằng JavaScript. Tuy nhiên vì JSON là một định dạng dữ liệu nên nó có thể được sử dụng bởi bất cứ ngôn ngữ nào mà không bị giới hạn.
Giá trị key trong JSON có thể là chuỗi (string), số (numner), rỗng (null), mảng (array), hoặc đối tượng (object).
Array: Một bộ sưu tập các Value có thứ tự được gọi là Array.
Ví dụ:
“students”:[{“firstName”:”Jerry”, “lastName”:”Michel”},{"firstName":"Lyly", "lastName":"Garner"},{"firstName":"Bruce", "lastName":"Cooper"}]
“students”:[
{“firstName”:”Jerry”, “lastName”:”Michel”},
{"firstName":"Lyly", "lastName":"Garner"},
{"firstName":"Bruce", "lastName":"Cooper"}
]
Boolean: Biểu diễn Value dưới dạng True hoặc False.
{“married”:”false”)
Số: Gồm số nguyên và số thực.
{“age”:”30”}
Đối tượng: Là một mảng kết hợp của các cặp Key – Value .
“employees”: {"firstName":"Tom", "lastName":"Jackson”}
Chuỗi: Là một số ký tự văn bản thuần.
"firstName":"Tom"
Dưới đây là một ví dụ về dữ liệu được mã hóa trong JSON:
{“firstName”: “Johan”,“lastName”: “Freeman”,“loginCount”: 4,“isWriter”: true,“worksWith”: [“Spantree Technology Group”, “InfoWorld”],“pets”: [{“name”: “Lilly”,“type”: “Raccoon”}]}
{
“firstName”: “Johan”,
“lastName”: “Freeman”,
“loginCount”: 4,
“isWriter”: true,
“worksWith”: [“Spantree Technology Group”, “InfoWorld”],
“pets”: [
“name”: “Lilly”,
“type”: “Raccoon”
}
Như các bạn đã thấy, cấu trúc trên xác định rõ ràng các thuộc tính của một người bao gồm họ và tên, số lần người đó đã đăng nhập, người này có phải là nhà văn hay không, danh sách các công ty mà người đó làm việc cùng và kể cả danh sách thú cưng. Cấu trúc như trên có thể được chuyển từ máy chủ đến trình duyệt web hoặc ứng dụng di động, sau đó sẽ thực hiện một số hành động như hiển thị dữ liệu hoặc lưu lại để tham khảo sau này.
Không giống với một số kiểu định dạng khác, cấu trúc của JSON tuân theo phong cách nhỏ gọn, đơn giản nhằm cải thiện khả năng đọc của người dùng. Đặc biệt là khi làm việc với một hệ thống phức tạp, JSON có xu hướng thực hiện các cải tiến đáng kể.
Quá trình phân tích cú pháp JSON nhanh hơn so với XML vì thư viện thao tác DOM trong XML yêu cầu thêm bộ nhớ để xử lý các tệp XML lớn. Ngược lại, JSON yêu cầu ít dữ liệu hơn, dẫn đến giảm chi phí và tăng tốc độ phân tích.
Cấu trúc JSON rất đơn giản và dễ đọc. Bất kể ngôn ngữ lập trình bạn đang sử dụng là gì, bạn vẫn có thể dễ dàng ánh xạ các miền đối tượng.
JSON sử dụng cấu trúc dữ liệu bản đồ, trong khi XML tuân theo cấu trúc cây. Các cặp Key-Value bị giới hạn nhiệm vụ nhưng tạo điều kiện thuận lợi cho mô hình dự đoán và tương đối dễ hiểu.
Vì không có schema, bạn có thể linh hoạt để trình bày dữ liệu theo bất kỳ cách nào bạn muốn. Nhưng ngược lại, bạn có thể vô tình tạo ra dạng dữ liệu bị sai.
Do JSON sử dụng định dạng Số thực dấu phẩy động IEEE-754. Điều này làm bạn không thể tận dụng các loại số đa dạng và nhiều sắc thái có sẵn trong nhiều ngôn ngữ lập trình.
Thiếu sót này có nghĩa khiến các nhà phát triển phải sử dụng chuỗi biểu thị ngày, dẫn đến sự khác biệt về định dạng hoặc phải biểu diễn ngày ở dạng mili giây.
Điều này khiến bạn không thể yêu cầu tài liệu bổ sung và tăng khả năng hiểu nhầm.
Mặc dù JSON ngắn hơn XML, nhưng đây vẫn chưa phải là định dạng trao đổi dữ liệu ngắn gọn nhất. Vì vậy, đối với các dịch vụ có khối lượng lớn hoặc có mục đích đặc biệt, bạn sẽ muốn sử dụng các định dạng dữ liệu hiệu quả hơn là JSON.
XML ngày càng trở nên ít phổ biến hơn trong các hệ thống mới. Ngoài việc dài dòng hơn, XML cũng dẫn đến sự mơ hồ khi phân tích cú pháp thành một cấu trúc dữ liệu thân thiện với JavaScript.
Việc chuyển đổi XML sang một đối tượng JavaScript có thể mất từ hàng chục đến hàng trăm dòng code. Còn với JSON, việc chuyển đổi thành một đối tượng JavaScript chỉ cần một dòng mã và không yêu cầu bất kỳ kiến thức nào trước đó về đối tượng đang được phân tích cú pháp.
JSON có định dạng là văn bản thuần túy nên rất dễ sử dụng để gửi dữ liệu đến một máy chủ bất kỳ và thường được dùng để trao đổi dữ liệu văn bản giữa trình duyệt và máy chủ. Vì vậy, nếu bạn nhận dữ liệu từ máy chủ bạn có thể sử dụng JSON như bất kỳ đối tượng JavaScript nào khác.
JSON là một định dạng dữ liệu ngắn gọn và đơn giản nên bạn chỉ cần nắm được một vài nguyên tắc chính là có thể giải mã giá trị của JSON trên toàn bộ trang web. Hy vọng qua những thông tin mà bài viết đã chia sẻ sẽ mang lại một nguồn kiến thức bổ ích cho bạn.
Đó là khi bạn muốn lưu trữ dữ liệu đơn thuần dưới dạng metadata ở phía server. Chuỗi JSON sẽ được lưu vào database và sau đó khi cần dữ liệu thì sẽ được giải mã. Ví dụ với PHP, nó cung cấp các hàm liên quan đến JSON để mã hóa hoặc giải mã là json_encode và json_decode.
Một trường hợp khá phổ biến trong JavaScript mà dữ liệu được định dạng theo format JSON xuất hiện đó là trong các AJAX request.
Ví dụ bạn tạo tập tin bacviet_info.json ở thư mục gốc của server (để khi request vào URL http://localhost/bacviet_info.json thì server trả về nội dung của tập tin này) và sau đó bạn tạo một tập tin bacviet_ajax.html với nội dung như sau:
<html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.2/jquery.min.js"></script> </head> <body> <script type="text/javascript"> $.ajax( type: 'GET', url: "http://localhost/bacviet_info.json", success: function(response) { console.log("Data type: " + (typeof response)); console.log("Application name: " + response.name); }, ); </script> </body> </html>
Đoạn code trên sử dụng $.ajax() để gửi AJAX request lên server lấy về nội dung file bacviet_info.json. Sau khi lấy về nội dung tập tin này thành công, dữ liệu sẽ được chuyển vào biến response.
Nếu bạn mở developer console của trình duyệt lên (nhấn phím F12) bạn sẽ thấy kiểu dữ liệu của biến response này được JavaScript object với các thuộc tính như name, title, decription.
JSON rất dễ học và dễ sử dụng hơn so với XML. Hầu hết các API web hiện đại đều xuất dữ liệu ở định dạng JSON. Vì một định dạng dữ liệu nhẹ đang nhanh chóng trở thành định dạng mặc định trong việc trao đổi dữ liệu trên internet ngày nay! Tóm lại, JSON nhẹ, không phụ thuộc vào ngôn ngữ và dễ đọc, viết.
Một số số tiện ích dưới dây giúp bạn làm được điều đó:
Bạn có thể mở file JSON bằng cách nhấp chuột phải vào file -> Open With -> Notepad (hoặc Notepad + +)
AJAX là một nhóm gồm nhiều công nghệ phát triển web được sử dụng để tạo các ứng dụng web động hoặc một số ứng dụng giàu tính Internet. AJAX cho phép bạn lấy và phân tích dữ liệu JSON do đây là một trong những phương thức giúp trao đổi dữ liệu với máy chủ và đồng thời cập nhật chúng thành các thành phần có sẵn bên trong một trang web, điều này người dùng sẽ không cần phải tải lại toàn bộ từ đầu.Tóm lại, AJAX chính là một thuật ngữ chung dành riêng cho những kỹ thuật của người dùng có khả năng kết nối được với máy chủ.
Hy vọng với những thông tin mà chúng tôi đã chia sẻ trên đây đã giúp bạn đọc hiểu hơn về JSON và các ứng dụng, cấu trúc hay tầm quan trọng mà nó mang lại cho Web Clients và Web Servers.
Nếu bạn có thắc mắc về JSON, hãy để lại ở bên bình luận bên dưới, Chúng tôi sẽ trả lời bạn trong thời gian sớm nhất.