JSON là gì? Cú pháp, loại, và trao đổi dữ liệu cho APIs
API lấy dữ liệu không cần scrap cung cấp các giao diện theo nhiệm vụ có thể trả về dữ liệu web công khai có cấu trúc trong JSON cho các quy trình ứng dụng.
Tóm tắt
- JSON là một định dạng văn bản cho việc trao đổi dữ liệu có cấu trúc. Nó đại diện cho các đối tượng, mảng, chuỗi, số, giá trị boolean, và null.
- JSON không bị phụ thuộc vào ngôn ngữ. Cú pháp của nó xuất phát từ JavaScript, nhưng các trình phân tích cú pháp và trình sinh mã tồn tại trong các hệ sinh thái lập trình.
- Cú pháp hợp lệ không đảm bảo dữ liệu kinh doanh hợp lệ. Các lược đồ và kiểm tra ứng dụng phải thực thi các trường, phạm vi, định dạng, và mối quan hệ cần thiết.
- Đối tượng là tập hợp không có thứ tự của tên và giá trị. Các ứng dụng không nên gán ý nghĩa cho thứ tự thành viên.
- Tính tương tác cần xử lý số và văn bản có kỷ luật. Unicode, tên trùng lặp, số nguyên lớn, độ chính xác thập phân, và chuỗi ngày tháng cần các quy ước rõ ràng.
Định nghĩa về JSON
JSON, hoặc Khối lượng đối tượng JavaScript, là một định dạng trao đổi dữ liệu nhẹ, dựa trên văn bản, độc lập với ngôn ngữ. Nó đại diện cho các giá trị có cấu trúc với ngữ pháp nhỏ được xây dựng từ các đối tượng, mảng, chuỗi, số, các hằng số true và false, và null. JSON được sử dụng rộng rãi cho các yêu cầu API web, phản hồi, cấu hình, nhật ký, sự kiện, và tài liệu lưu trữ vì con người có thể kiểm tra nó và hầu hết các ngôn ngữ có thể phân tích nó.
Chỉ dẫn quy chuẩn Đặc tả JSON của IETF, RFC 8259 định nghĩa văn bản JSON là một giá trị đã được tuần tự hóa và cung cấp hướng dẫn tương tác. JSON không phải là JavaScript có thể thực thi, không hỗ trợ chú thích trong ngữ pháp chuẩn, và không định nghĩa ngày tháng, giá trị nhị phân, tập hợp, bản đồ với khoá không phải là chuỗi, hoặc các loại chuyên dụng của ứng dụng. Những ý nghĩa đó phải được thể hiện bằng một lược đồ hoặc quy ước đã được đồng ý.
Cách JSON đại diện cho dữ liệu
Cách thức phía sau JSON là một phần của nhiều ranh giới phần mềm hoặc mạng. Đặt tên cho mỗi giai đoạn làm cho việc xem xét hiệu suất, độ chính xác, và an ninh trở nên cụ thể.
Đối tượng và tên thành viên
Một đối tượng được giới hạn bởi dấu ngoặc nhọn và chứa các thành viên có tên giá trị. Tên là chuỗi. Đặc tả mô tả tên đối tượng là không có thứ tự, vì vậy người tiêu dùng nên truy cập các thành viên theo tên thay vì vị trí. Những cái tên độc đáo sản xuất hành vi tương tác tốt nhất vì việc xử lý tên trùng lặp khác nhau.
Mảng và giá trị
Một mảng là một chuỗi có thứ tự giới hạn bởi dấu ngoặc vuông. Mỗi vị trí có thể chứa bất kỳ giá trị JSON nào, bao gồm cả một mảng hoặc đối tượng khác. Mảng hoạt động tốt khi thứ tự có nghĩa hoặc khi nhiều bản ghi chia sẻ một bộ sưu tập khái niệm.
Chuỗi, số, và hằng số
Chuỗi sử dụng dấu ngoặc kép và quy tắc thoát cho các ký tự điều khiển và ký tự đặc biệt. Số sử dụng ngữ pháp thập phân mà không có NaN hoặc Infinity. Các hằng số boolean và null là viết thường. Các trình phân tích ánh xạ những giá trị này vào các kiểu ngôn ngữ chủ, mà có thể có các giới hạn độ chính xác khác nhau.
Giá trị JSON và ý nghĩa ứng dụng
Các đội thường đồng ý về một nhãn trong khi giả định hành vi khác nhau. Những hàng này biến What Is JSON thành các câu hỏi hợp đồng và hoạt động cụ thể.
| Khái niệm | Ý nghĩa | Tín hiệu thực tế |
|---|---|---|
| Đối tượng | Các thành viên được đặt tên với các giá trị JSON. | Một bản ghi, đối tượng cấu hình, hoặc mối quan hệ có khóa. |
| Mảng | Giá trị có thứ tự. | Một danh sách các bản ghi, tọa độ, hoặc một chuỗi. |
| Chuỗi | Văn bản Unicode sử dụng quy tắc thoát JSON. | Tên, nhận dạng, dấu thời gian theo quy ước, và văn bản con người. |
| Số | Cú pháp số thập phân. | Số lượng, đo lường, hoặc số tiền trong độ chính xác đã đồng ý. |
| Giá trị boolean và null | Giá trị chân lý và một hằng null rõ ràng. | Cờ và các giá trị rõ ràng không có hoặc không biết khi lược đồ định nghĩa ý nghĩa. |
Nơi JSON hoạt động tốt
Lý do mạnh mẽ nhất để áp dụng hoặc tối ưu hóa What Is JSON là sự phù hợp có thể đo lường với quy trình làm việc. Những kịch bản này mô tả sự phù hợp đó mà không coi thuật ngữ này là mặc định phổ quát.
Web APIs
JSON tự nhiên ánh xạ đến các bản ghi ứng dụng phổ biến và được hỗ trợ bởi trình duyệt, máy chủ, cổng và thư viện khách.
Cấu hình
Các cài đặt nhỏ có cấu trúc dễ đọc và di động khi không cần nhận xét và các kiểu dữ liệu phong phú.
Thông điệp sự kiện
Nhà sản xuất và người tiêu dùng có thể trao đổi các bản ghi kiểu theo hợp đồng thông qua hàng đợi và luồng.
Dữ liệu web chuẩn hóa
Hệ thống trích xuất có thể chuyển đổi nội dung cụ thể trên trang thành các đối tượng ổn định để lưu trữ và phân tích phía hạ nguồn.
Phân tích, xác thực và khả năng tương tác
Phân tích trả lời liệu đầu vào có tuân theo cú pháp JSON và tạo ra một giá trị ngôn ngữ chủ. Xác thực trả lời liệu giá trị đó có thỏa mãn hợp đồng ứng dụng hay không. Một đối tượng đã phân tích vẫn có thể bỏ qua một định danh bắt buộc, chứa một trạng thái không được hỗ trợ, sử dụng đơn vị sai hoặc vi phạm mối quan hệ giữa các trường. Giữ các giai đoạn này tách biệt để thông báo lỗi xác định đúng vấn đề.
Định nghĩa một sơ đồ hoặc hợp đồng tương đương cho các giao diện sản xuất. Xác định các thành viên bắt buộc và tùy chọn, nullability, ràng buộc số, định dạng chuỗi, giới hạn mảng, chính sách thành viên không biết, và quy tắc tương thích. Sơ đồ Chỉ dẫn tính từ thiết kế chính định nghĩa một từ vựng để chú thích và xác thực các phiên bản JSON, mặc dù một ứng dụng vẫn sở hữu quyền ủy quyền miền và quy tắc trạng thái.
Lập kế hoạch cho sự khác biệt ngôn ngữ chủ. Một số môi trường đại diện cho mọi số bằng kiểu số dấu phẩy động, mà không thể đại diện chính xác cho tất cả các số nguyên lớn. Giá trị tiền tệ thập phân cũng có thể mất độ chính xác. Sử dụng chuỗi hoặc một quy ước thập phân rõ ràng khi độ chính xác là quan trọng, và tài liệu hóa thỏa hiệp. Đối xử với dấu thời gian như là chuỗi với định dạng và quy tắc múi giờ được xác định thay vì giả định JSON cung cấp một kiểu ngày.
Những sai lầm phổ biến của JSON
- Thêm nhận xét vào một tài liệu JSON chuẩn. Một số công cụ chấp nhận các phần mở rộng, nhưng người tiêu dùng JSON tương tác có thể từ chối chúng.
- Tùy thuộc vào thứ tự thành viên đối tượng. Các đối tượng về mặt khái niệm là không có thứ tự; sử dụng mảng khi thứ tự mang ý nghĩa.
- Sử dụng tên thành viên trùng lặp. Bộ phân tích có thể giữ giá trị đầu tiên, giữ giá trị cuối cùng, phô bày tất cả giá trị, hoặc từ chối tài liệu.
- Chuyển đổi định danh thành số. Các số không và giá trị vượt quá các phạm vi số nguyên an toàn có thể bị mất; các định danh thường được đại diện tốt hơn dưới dạng chuỗi.
- Tin tưởng vào đầu vào đã phân tích. Xác thực cú pháp không thay thế giới hạn kích thước, kiểm tra sơ đồ, ủy quyền và xử lý an toàn các chuỗi không đáng tin cậy.
JSON trong API và đường ống dữ liệu web
Tại một ranh giới API, gửi loại phương tiện chính xác, giải mã văn bản như đã chỉ định, hạn chế kích thước tải trọng được chấp nhận, phân tích bằng một thư viện được duy trì, và xác thực giá trị thu được. Từ chối đầu vào không hợp lệ hoặc hợp đồng không hợp lệ trước khi nó đến logic kinh doanh. Các phản hồi lỗi nên xác định các trường mà không lặp lại bí mật hoặc toàn bộ tải trọng nhạy cảm. Nhà sản xuất và người tiêu dùng cũng nên tài liệu hóa độ chính xác số, mã hóa ký tự, và xử lý thành viên không biết.
Tại một ranh giới trích xuất trên web, giữ cho các quan sát nguồn tách biệt khỏi các trường đã chuẩn hóa. Bảo tồn một định danh nguồn và siêu dữ liệu bộ sưu tập, sau đó ánh xạ các giá trị vào một sơ đồ xác định kiểu và hành vi dữ liệu thiếu. Đừng tạo ra chuỗi trống cho mọi sự vắng mặt; null, sự bỏ qua và một giá trị trống có thể có những ý nghĩa khác nhau.
Đối với lưu trữ lâu dài, phiên bản hóa sơ đồ ứng dụng và ghi lại các biến đổi. Cú pháp JSON có thể vẫn ổn định trong khi hợp đồng kinh doanh tiến triển. Người tiêu dùng cần một chính sách tương thích cho các thành viên được thêm vào, các thành viên bị xóa, các enum đã thay đổi, và cấu trúc lồng ghép. Kiểm tra các nhà sản xuất cũ và mới với phạm vi người tiêu dùng được hỗ trợ.
Danh sách kiểm tra đánh giá What Is JSON
Sử dụng các kiểm tra này để biến định nghĩa What Is JSON thành bằng chứng thực hiện mà nhà phát triển, người vận hành, hoặc người đánh giá có thể tái tạo.
- Nhắc lại ranh giới. Đối với What Is JSON, xác định người gọi, nhà cung cấp, đường dẫn và sự kiện chính xác đánh dấu một kết quả hoàn chỉnh.
- Xác minh yêu cầu trung tâm. Xác nhận tuyên bố này với việc thực hiện và tài liệu của nó: JSON là định dạng văn bản cho việc trao đổi dữ liệu có cấu trúc. Nó đại diện cho các đối tượng, mảng, chuỗi, số, boolean và null.
- Theo dõi cơ chế. Ghi lại các đối tượng và tên thành viên, mảng và giá trị, chuỗi, số và hằng, và ghi lại thành phần nào sở hữu mỗi giai đoạn.
- Kiểm tra sự phân biệt gần nhất. Tài liệu tại sao Đối tượng có nghĩa là “Các thành viên được đặt tên với các giá trị JSON.” trong hệ thống này.
- Kiểm tra một trường hợp sử dụng đại diện. Sử dụng các API web với dữ liệu thực tế, vị trí, khối lượng và ranh giới quyền phép.
- Bảo vệ chống lại một sai lầm đã biết. Rà soát “Thêm nhận xét vào một tài liệu JSON chuẩn.” và thêm một kiểm tra chấp nhận để bắt giữ nó.
- Giới hạn khối lượng công việc. Đặt giới hạn phù hợp với chủ đề cho What Is JSON, bao gồm tải trọng, độ đồng thời, thời gian thực thi và đầu ra đã lưu trữ nơi chúng áp dụng.
- Ghi lại quyết định. Giải thích lý do tại sao What Is JSON phù hợp với giới hạn này và nêu bằng chứng sẽ biện minh cho một cách tiếp cận khác sau này.
Kết luận
What Is JSON nên mô tả một phần có thể kiểm tra của thiết kế hơn là hành động như một nhãn lỏng cho hành vi lân cận. Đánh giá nên giữ vững quyết định trung tâm này: JSON là định dạng văn bản cho việc trao đổi dữ liệu có cấu trúc. Nó đại diện cho các đối tượng, mảng, chuỗi, số, giá trị boolean và null. Nó cũng nên bảo vệ chống lại việc thêm nhận xét vào một tài liệu json chuẩn. và giữ quyền truy cập What Is JSON trong chính sách tài liệu cho giao diện hoặc mạng.
Sẵn sàng xây dựng quy trình dữ liệu web của bạn?
Kết nối một bước thu thập hoặc tích hợp What Is JSON đã được đo lường với các thực tiễn xác thực và lưu trữ đã được mô tả ở trên.
Đăng ký hôm nay và nhận 5 đô la tín dụng miễn phí — không yêu cầu thẻ tín dụng.
Đòi 5 đô la tín dụng của bạn →Câu hỏi thường gặp
JSON viết tắt cho cái gì?
JSON viết tắt cho JavaScript Object Notation. Nó là một định dạng trao đổi dữ liệu dựa trên văn bản và độc lập với ngôn ngữ, được phát sinh từ cú pháp đối tượng của JavaScript.
JSON có phải là một ngôn ngữ lập trình không?
Không. JSON là một định dạng dữ liệu. Nó có cú pháp để đại diện cho các giá trị có cấu trúc nhưng không có biến, luồng điều khiển, hàm, hoặc mô hình thực thi.
JSON có thể chứa nhận xét không?
JSON chuẩn không bao gồm cú pháp ghi nhận. Một số công cụ cấu hình chấp nhận các phần mở rộng giống JSON, nhưng các tài liệu dự kiến cho các người tiêu dùng JSON có khả năng tương tác nên tuân theo ngữ pháp chuẩn.
Sự khác biệt giữa JSON và một đối tượng JavaScript là gì?
JSON là văn bản đã được tuần tự hóa với ngữ pháp hạn chế, trong khi một đối tượng JavaScript là giá trị thời gian chạy có thể chứa các hàm, biểu tượng, nguyên mẫu, undefined, và các tính năng khác mà JSON không thể đại diện.