JSON là gì?
1. Tên gọi
Viết tắt của JavaScript Object Notation (dịch sơ sơ là đối tượng JavaScript). Thực ra chỉ là dịch chơi, còn không cứ gọi là JSON.
Xem thêm ở đây http://www.json.org/
2. Nó là gì?
Nó là một chuẩn để định dạng dữ liệu, về mặt này, có thể so sánh JSON với XML, YAML… Nhưng khi JSON đi với JavaScript hoặc ActionScript thì nó có tính ưu việt hơn hẳn.
Tại sao JSON có liên quan đến JavaScript, ActionScript. Đơn giản là vì dữ liệu được định dạng thành chuỗi JSON chính là cách biểu diễn một đối tượng trong các Scripting Language này.
3. Lợi ích của JSON
Khi sử dụng JSON với JavaScript hay ActionScript, không cần phải có các bước phân tích phức tạp như đối với XML. Mà có thể truy vấn trực tiếp giá trị theo tên (khóa) được định nghĩa trong JSON.
Ví dụ:
Bạn có một dữ liệu XML:
<data> <x>2</x> <y>3</y> </data>
Sử dụng JavaScript để đọc dữ liệu này, bạn phải qua một bước phân tích, đưa văn bản XML thành một đối tượng dữ liệu và đọc dữ liệu theo nodes. Giả sử object của bạn là xmlObj, bạn muốn lấy dữ liệu x và y bạn sẽ gọi:
var x = xmlObj.childNodes[0].text; var y = xmlObj.childNodes[1].text;
Trong trường hợp tương tự, bạn có một dữ liệu JSON:
var jsonStr = '{ data : { x : 2 , y : 3}}';
Sử dụng JavaScript bạn chỉ cần gọi:
eval( 'var jsonObj = ' + jsonStr + ';'); var x = jsonObj.x; var y = jsonObj.y;
JSON là một chuẩn cực kỳ quan trọng trong lập trình web ở phía client.
Đối với lập trình viên client script. JSON rút ngắn thời gian viết mã JS, AS hơn là sử dụng XML.
4. Nên sử dụng JSON trong những tình huống nào
- Lưu trữ dữ liệu đơn thuần. Đó là khi bạn muốn lưu trữ dữ liệu 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, cung cấp các hàm liên quan đến JSON để mã và giải mã là json_encode và json_decode.
- Chú ý: phương pháp này cũng tương tự như sử dụng tính năng serialize và unserialize của PHP. Nhưng trong khi serialize và unserialize sử dụng với cả dữ liệu và biến, tức là phụ thuộc vào ngôn ngữ lập trình là PHP và dĩ nhiên không thể transfer sang ngôn ngữ lập trình khác để unserialize được. Vì vậy, nếu dữ liệu của bạn chỉ đơn thuần là dữ liệu cơ bản (chuỗi kí tự, số…) thì bạn hoàn toàn không nên sử dụng serialize mà nên sử dụng JSON.
- Sử dụng JavaScript, ActionScript để xử lý thông tin trả về từ phía server. Rất nhanh và rất dễ dàng.
Ads:
http://www.youbrainy.com cùng xem một dự án phát triển như thế nào với một team cỡ nhỏ!
em đang tìm hiều về JSON và so sánh nó với XML , anh có thể cho em biết rõ hơn nó khác nhau chỗ nào từng cái dc không. Cảm ơn
em đang tìm hiều về JSON và so sánh nó với XML , anh có thể cho em biết rõ hơn nó khác nhau chỗ nào từng cái dc không? Cảm ơn anh rất nhiều
http://linhdoha.wordpress.com/2009/06/30/xml-va-json/
Hi bạn, bạn có thể xem bài viết này của Linhdoha để có một sự so sánh giữa JSON & XML.
Về mặt ứng dụng, chỉ nên dùng JSON trong những trường hợp “nội bộ” ứng dụng. Còn với webservice (public) thì nên dùng XML. Đơn giản là vì, JSON phục vụ cho JS hoặc AS (ActionScript), còn XML là định dạng chuẩn và được sử dụng rất rộng rãi.
Về mặt lợi ích, JSON tiết kiệm đường truyền hơn XML.
Ngoài ra, các kỹ thuật parse string cũng ảnh hưởng tới tốc độ xử lý của ứng dụng.
Mình có 1 tuts về kết hợp giữa JSON trong Ajax của Jquery và PHP,
các bạn có thể vào đây xem: http://ntuts.com/jquery/huong-dan/ket-hop-su-dung-json-ajax-voi-jquery-va-php
Web của bạn hay đấy. Có bài nào tâm đắc thì share mình đọc với nhé.
Pingback: 2010 in review « Datgs' Blog
Em đang tìm hiểu về activeMQ,mấy anh biết về cái này không,có thể cho 1 ví dụ về phần này ko ? kết hợp với json :d
Uhm, đơn giản nhất, trước hết em phải hiểu ActiveMQ theo cách mà em hiểu về MySQL chẳng hạn.
1. Nó là một dạng service dạng Client/Server. Truy xuất vào nó giống như truy xuất vào một database vậy. Vì vậy nếu viết mã nguồn thì logic của 2 việc này (kết nối database và kết nối queue là như nhau, chỉ khác nhau về thư viện, code).
2. Khác với database giải quyết bài toàn lưu trữ, ở đây em giải quyết bài toán hàng đợi. Chú ý: em hoàn toàn có thể sử dụng DATABASE để làm một hàng đợi. Tất nhiên, Queue Serser có nhiều tính năng tích hợp sẵn cho bài toán hàng đợi mà làm thủ công với DATABASE sẽ vất vả hơn.
3. Nếu em hoàn toàn chưa biết gì về hàng đợi thì em hãy học nó trước khi tìm hiểu về ActiveMQ.
Thư viện để giao tiếp với Active MQ từ PHP là Stomp. Em có thể tìm hiểu thêm về nó. Phải tâm niệm là nó rất đơn giản, như kết nối, truy vấn database vậy thôi
. Chỉ có điều câu lệnh nó khác và mục đích nó khác.