Bạn cần làm gì với một khối dữ liệu lớn? Câu hỏi này là tiền thân cho các sự ra đời của các Hệ quản trị cơ sở dữ liệu (DBMS). Nhưng sử dụng các DBMS khá phức tạp và cầu kỳ, bạn cần một cách nào đó đơn giản, nhỏ gọn hơn. Trong bài viết này, TinoHost sẽ giới thiệu cho bạn về Json, một giải pháp có thể giúp bạn hài lòng.
Đôi nét về Json
Json là gì?
Json (viết tắt từ JavaScript Object Notation) là một bản trình bày dữ liệu có cấu trúc dạng văn bản, không giản đồ dựa trên các Key-value và danh sách có thứ tự.
Json có nguồn gốc từ Javascript, được hỗ trợ tự nhiên hoặc thông qua các thư viện trong hầu hết các ngôn ngữ lập trình chính. Mục đích thường sử dụng của Json là trao đổi thông tin giữa máy khách web và máy chủ web.
Trong những năm qua, Json đã trở nên phổ biến trên các trang web. Ngày nay, Json được xem là định dạng được lựa chọn cho hầu hết mọi dịch vụ web công khai và cũng thường được sử dụng cho dịch vụ web riêng tư.
Lịch sử phát triển
Json phát triển từ nhu cầu về giao thức giao tiếp giữa máy chủ với trình duyệt không trạng thái, không cần sử dụng các Plugin như Flash hoặc Java Applet.
Json đã được bán cho Sun Microsystems, Amazon và EDS. Vào năm 2002, trang web Json.org được ra mắt. Năm 2005, Yahoo! đã bắt đầu cung cấp một số dịch vụ web của mình trong Json.
Tháng 10 năm 2013, Ecma International xuất bản ấn bản đầu tiên của tiêu chuẩn Json ECMA-404 và các bản nâng cấp được phát triển vào các năm sau đó.
Cấu trúc chuỗi Json
Object trong Json được thể hiện bằng dấu ngoặc nhọn { }. Khái niệm Object trong Json cũng khá tương đồng với Object trong JavaScript. Tuy nhiên, object trong Json vẫn có giới hạn như:
- Key: phải luôn nằm trong ngoặc kép và không được phép là biến số.
- Value: Chỉ cho phép các kiểu dữ liệu cơ bản như number, string, boolean, null,…Không cho phép function, data, undefined.
Dữ liệu Json được lưu trữ trong các tệp kết thúc bằng phần mở rộng Json. Người dùng có thể đọc được đặc điểm của Json, đây chỉ đơn giản là các tệp văn bản thuần túy, có thể dễ dàng mở rộng và kiểm tra.
Đây cũng là chìa khóa có tác động rộng hơn của Json, vì mọi ngôn ngữ bạn đặt tên đều có thể đọc và xử lý các tệp văn bản thuần túy và dễ dàng gửi qua Internet.
Các kiểu dữ liệu của Json
- Chuỗi: Một chuỗi trong Json bao gồm các ký tự Unicode, với dấu gạch chéo ngược (\).
- Con số: Số Json tuân theo định dạng dấu phẩy và ngoặc kép của Javacript.
- Boolean: Giá trị Boolean được chỉ định là True hoặc False, giá trị Boolean không được bao quanh trong dấu ngoặc kép và được coi là giá trị chuỗi.
- Vô giá trị: Null là một giá trị trống, khi không có giá trị nào gán cho key, nó được coi là Null
- Vật: Kiểu dữ liệu đối tượng Json là tập hợp các tập tên hoặc giá trị được chèn vào giữa dấu { }. Các key phải là chuỗi và được phân tách duy nhất bằng dấu phẩy.
- Mảng: Kiểu dữ liệu mảng là một tập hợp các giá trị có thứ tự. Trong Json, giá trị mảng phải có kiểu chuỗi, số , đối tượng, mảng, Boolean hoặc Null.
Những đặc điểm của Json
Nên sử dụng Json trong trường hợp nào?
Tạo đối tượng Json từ dữ liệu do người dùng tạo
Json là một cách hoàn hảo để lưu trữ dữ liệu tạm thời. Dữ liệu đó có thể là dữ liệu do người dùng tạo, chẳng hạn như biểu mẫu đã gửi trên trang web.
Json cũng có thể được sử dụng làm định dạng dữ liệu cho bất kỳ ngôn ngữ lập trình nào để cung cấp khả năng tương tác cao.
Truyền dữ liệu giữa các hệ thống
Cơ sở dữ liệu trang web có địa chỉ gửi thư của khách hàng, những địa chỉ đó cần được xác minh thông qua API để đảm bảo địa chỉ hợp lệ.
Gửi dữ liệu địa chỉ ở định dạng Json tới API dịch vụ xác thực địa chỉ.
Cấu hình dữ liệu cho ứng dụng
Khi phát triển ứng dụng, mỗi ứng dụng cần thông tin xác thực để kết nối với cơ sở dữ liệu cũng như đường dẫn nhật ký tệp.
Thông tin đăng nhập và đường dẫn tệp được chỉ định trong tệp Json có thể đọc và khả dụng.
Đơn giản hóa các mô hình dữ liệu phức tạp
Json đơn giản hóa các tài liệu phức tạp xuống các thành phần đã được xác định, có ý nghĩa trong cách chuyển đổi quá trình trích xuất dữ liệu thành tệp Json có thể dự đoán và đọc được.
Các tiện ích của Json
Nếu muốn kiểm tra thao tác hoặc kiểm tra dữ liệu được mã hóa Json trực tiếp mà không cần tự viết mã, sẽ có một tiện ích có thể giúp bạn.
Tất cả các mã tương đồng có lập trình trong các thư viện mã được liên kết, bạn có thể cắt và dán mã Json vào các công cụ dựa trên các trình duyệt sau
- Json Formatter: Jsonlint sẽ định dạng và gửi mã xác thực Json tùy ý.
- Json Viewer: Stack.hu có một trang web tạo tương tác, giúp bạn hiểu được cấu trúc mã Json của mình
- Json Beautifier: Nếu muốn “in đẹp” cho mã Json, với cú pháp tô màu và những công dụng tương tự có thể giúp bạn.
- Json Converter: Nếu cần nhanh chóng chuyển dữ liệu từ định dạng Json sang một thứ khác. Covertcsv.com có thể giúp bạn chuyển Json thành CSV, sau đó mở bằng Excel hoặc XML.
Những hạn chế của Json
Mặc dù Json là một định dạng dữ liệu tương đối ngắn gọn, linh hoạt và dễ làm việc với nhiều ngôn ngữ lập trình. Nhưng Json vẫn có một số hạn chế đối với định dạng này.
- Không có lược đồ: Một mặt bạn hoàn toàn có thể linh hoạt để trình bày dữ liệu theo bất kỳ cách nào. Nhưng mặt khác, điều này có nghĩa là bạn cũng có thể vô tình dễ dàng tạo ra những dữ liệu dạng sai.
- Chỉ có một loại số: Định dạng dấu phẩy chính xác kép IEEE-754, nó chỉ có ý nghĩa đơn giản là bạn không thể tận dụng các kiểu số đa dạng và sắc thái có sẵn trong nhiều ngôn ngữ lập trình.
- Miễn bình luận: Điểm hạn chế này khiến bạn không thể chú thích nội dung ở các trường, các yêu cầu tài liệu bổ sung, dễ gây sai sót và khả năng hiểu nhầm cao.
- Độ dài: Mặc dù Json ít dài dòng hơn XML, nhưng Json cũng không phải là định dạng trao đổi dữ liệu ngắn gọn. Đối với các dịch vụ có khối lượng lớn hoặc mục đích đặc biệt, bạn sẽ muốn sử dụng các định dạng dữ liệu mang lại hiệu quả cao hơn.
- Không có loại ngày: Nghĩa là các nhà phát triển của Json không sử dụng chuỗi biểu thị ngày, điều này dẫn đến sự khác biệt về định dạng hoặc phải hiển thị ngày ở dạng mili giây.
Hy vọng những thông tin mà TinoHost đã tổng hợp được sẽ giúp bạn hiểu hơn về Json.
TinoHost chúc bạn có thể khai thác tối đa những tính năng hữu ích và có những phương án khắc phục những hạn chế của Json, biến nó thành một trợ thủ đắc lực cho mình.
Một số câu hỏi thường gặp về Json
Json và Jsonp có giống nhau không?
Câu trả lời là không
- Json là một định dạng dữ liệu đơn giản được sử dụng như phương tiện giao tiếp giữa các hệ thống khác nhau.
- Jsonp là phương pháp để sử dụng định dạng đó với các yêu cầu của Ajax (viết tắt từ Javascript và XML không đồng bộ) tên miền chéo, không bị ảnh hưởng bởi cùng một vấn đề về chính sách nguồn gốc.
Chuyển một mảng Json thành một chuỗi Json như thế nào?
Để chuyển đổi một chuỗi thành một mảng Json, bạn cần tạo ra đối tượng JsonObject cho từng đối tượng của mình và thêm chúng vào mảng Json của bạn.
Có thể thêm nhận xét vào tệp Json không?
Theo cấu trúc, Json không hỗ trợ cho bất kỳ nhận xét nào cho dù key hoặc đối tượng dữ liệu có thể sử dụng để lưu trữ các nhận xét của bạn.
Phần mở rộng trong tệp Json là gì?
Tệp Json có phần mở rộng là “.json”. Ở định dạng dựa trên văn bản, tệp Json có thể xem hoặc chỉnh sửa bất kỳ trình soạn thảo văn bản nào như notepad hoặc notepad++.