Làm cách nào để lưu trữ dữ liệu biểu mẫu HTML trong đối tượng JSON?
Ký hiệu đối tượng JavaScript (JSON) là định dạng dựa trên văn bản tiêu chuẩn để biểu thị dữ liệu có cấu trúc dựa trên cú pháp đối tượng JavaScript. Nó thường được sử dụng để truyền dữ liệu trong các ứng dụng web (e. g. , gửi một số dữ liệu từ máy chủ đến máy khách, để nó có thể được hiển thị trên trang web hoặc ngược lại). Bạn sẽ gặp nó khá thường xuyên, vì vậy trong bài viết này, chúng tôi cung cấp cho bạn tất cả những gì bạn cần để làm việc với JSON bằng JavaScript, bao gồm phân tích cú pháp JSON để bạn có thể truy cập dữ liệu trong đó và tạo JSON Show JSON là định dạng dữ liệu dựa trên văn bản theo cú pháp đối tượng JavaScript, được phổ biến bởi Douglas Crockford. Mặc dù nó gần giống với cú pháp theo nghĩa đen của đối tượng JavaScript, nhưng nó có thể được sử dụng độc lập với JavaScript và nhiều môi trường lập trình có khả năng đọc (phân tích cú pháp) và tạo JSON JSON tồn tại dưới dạng một chuỗi — hữu ích khi bạn muốn truyền dữ liệu qua mạng. Nó cần được chuyển đổi thành một đối tượng JavaScript gốc khi bạn muốn truy cập dữ liệu. Đây không phải là vấn đề lớn — JavaScript cung cấp một đối tượng JSON toàn cầu có sẵn các phương thức để chuyển đổi giữa hai đối tượng Ghi chú. Chuyển đổi một chuỗi thành một đối tượng gốc được gọi là giải tuần tự hóa, trong khi chuyển đổi một đối tượng gốc thành một chuỗi để nó có thể được truyền qua mạng được gọi là tuần tự hóa Một chuỗi JSON có thể được lưu trữ trong tệp riêng của nó, về cơ bản chỉ là một tệp văn bản có phần mở rộng là 1 và loại MIME là 2Như đã mô tả ở trên, JSON là một chuỗi có định dạng rất giống với định dạng chữ của đối tượng JavaScript. Bạn có thể bao gồm các loại dữ liệu cơ bản giống nhau bên trong JSON như bạn có thể làm trong một đối tượng JavaScript tiêu chuẩn — chuỗi, số, mảng, booleans và các ký tự đối tượng khác. Điều này cho phép bạn xây dựng một hệ thống phân cấp dữ liệu, như vậy
Nếu chúng ta tải chuỗi này vào một chương trình JavaScript và phân tích nó thành một biến có tên là 3 chẳng hạn, thì chúng ta có thể truy cập dữ liệu bên trong nó bằng cách sử dụng cùng một ký hiệu dấu chấm/dấu ngoặc mà chúng ta đã xem trong bài viết cơ bản về đối tượng JavaScript. Ví dụ
Để truy cập dữ liệu sâu hơn trong hệ thống phân cấp, bạn phải xâu chuỗi các tên thuộc tính bắt buộc và các chỉ mục mảng lại với nhau. Ví dụ: để truy cập siêu năng lực thứ ba của anh hùng thứ hai được liệt kê trong danh sách thành viên, bạn sẽ làm điều này
Ghi chú. Chúng tôi đã cung cấp JSON được thấy ở trên bên trong một biến trong JSONTest của chúng tôi. ví dụ html (xem mã nguồn). Hãy thử tải cái này lên và sau đó truy cập dữ liệu bên trong biến thông qua bảng điều khiển JavaScript của trình duyệt của bạn Ở trên, chúng tôi đã đề cập rằng văn bản JSON về cơ bản trông giống như một đối tượng JavaScript bên trong một chuỗi. Chúng ta cũng có thể chuyển đổi mảng thành/từ JSON. Ví dụ, bên dưới cũng là JSON hợp lệ
Ở trên là JSON hoàn toàn hợp lệ. Bạn chỉ cần truy cập các mục mảng (trong phiên bản được phân tích cú pháp của nó) bằng cách bắt đầu với một chỉ mục mảng, ví dụ: 3
Vì vậy, hãy làm việc thông qua một ví dụ để cho thấy cách chúng ta có thể sử dụng một số dữ liệu được định dạng JSON trên một trang web Để bắt đầu, hãy tạo các bản sao cục bộ của các anh hùng của chúng tôi. html và phong cách. tập tin css. Phần sau chứa một số CSS đơn giản để định kiểu trang của chúng ta, trong khi phần trước chứa một số HTML nội dung rất đơn giản, cộng với phần tử 4 để chứa mã JavaScript mà chúng ta sẽ viết trong bài tập này
Chúng tôi đã cung cấp dữ liệu JSON trên GitHub của mình, tại https. //mdn. github. io/learning-area/javascript/oojs/json/siêu anh hùng. json Chúng tôi sẽ tải JSON vào tập lệnh của mình và sử dụng một số thao tác DOM tiện lợi để hiển thị nó, như thế này Chức năng cấp cao nhất trông như thế này
Để có được JSON, chúng tôi sử dụng API có tên là Fetch. API này cho phép chúng tôi thực hiện các yêu cầu mạng để truy xuất tài nguyên từ máy chủ thông qua JavaScript (e. g. hình ảnh, văn bản, JSON, thậm chí cả đoạn mã HTML), nghĩa là chúng tôi có thể cập nhật các phần nội dung nhỏ mà không phải tải lại toàn bộ trang Trong chức năng của chúng tôi, bốn dòng đầu tiên sử dụng Fetch API để tìm nạp JSON từ máy chủ
Ghi chú. API 7 không đồng bộ. Chúng ta sẽ tìm hiểu nhiều về các hàm không đồng bộ trong mô-đun tiếp theo, nhưng bây giờ, chúng ta sẽ chỉ nói rằng chúng ta cần thêm từ khóa 2 trước tên của hàm sử dụng API tìm nạp và thêm từ khóa 3 trước tên hàm Sau tất cả, biến 3 sẽ chứa đối tượng JavaScript dựa trên JSON. Sau đó, chúng tôi sẽ chuyển đối tượng đó tới hai lệnh gọi hàm - lệnh đầu tiên điền vào 5 với dữ liệu chính xác, trong khi lệnh thứ hai tạo một thẻ thông tin cho mỗi anh hùng trong đội và chèn nó vào 6Bây giờ chúng tôi đã truy xuất dữ liệu JSON và chuyển đổi nó thành một đối tượng JavaScript, hãy tận dụng nó bằng cách viết hai hàm mà chúng tôi đã tham chiếu ở trên. Trước hết, hãy thêm định nghĩa hàm sau vào bên dưới đoạn mã trước
Ở đây, trước tiên, chúng tôi tạo một phần tử 7 với 8, đặt 9 của nó bằng thuộc tính 0 của đối tượng, sau đó nối nó vào tiêu đề bằng cách sử dụng 1. Sau đó, chúng tôi thực hiện một thao tác rất giống với một đoạn văn. tạo nó, đặt nội dung văn bản của nó và nối nó vào tiêu đề. Sự khác biệt duy nhất là văn bản của nó được đặt thành một mẫu chữ chứa cả hai thuộc tính 2 và 3 của đối tượngTiếp theo, thêm chức năng sau vào cuối mã để tạo và hiển thị các thẻ siêu anh hùng
Để bắt đầu, chúng tôi lưu trữ thuộc tính 5 của đối tượng JavaScript trong một biến mới. Mảng này chứa nhiều đối tượng chứa thông tin cho từng anh hùngTiếp theo, chúng ta sử dụng a để lặp qua từng đối tượng trong mảng. Đối với mỗi người, chúng tôi
Ghi chú. Nếu bạn gặp khó khăn trong việc làm cho ví dụ hoạt động, hãy thử tham khảo các anh hùng đã hoàn thành của chúng tôi. mã nguồn html (cũng thấy nó chạy trực tiếp. ) Ghi chú. Nếu bạn gặp sự cố khi tuân theo ký hiệu dấu chấm/dấu ngoặc vuông mà chúng tôi đang sử dụng để truy cập đối tượng JavaScript, thì việc có các siêu anh hùng có thể hữu ích. json mở trong tab khác hoặc trình soạn thảo văn bản của bạn và tham khảo nó khi bạn xem JavaScript của chúng tôi. Bạn cũng nên tham khảo lại bài viết cơ bản về đối tượng JavaScript của chúng tôi để biết thêm thông tin về ký hiệu dấu chấm và dấu ngoặc Cuối cùng, chúng ta cần gọi hàm 8 cấp cao nhất
Ví dụ trên rất đơn giản về mặt truy cập đối tượng JavaScript, bởi vì chúng tôi đã chuyển đổi trực tiếp phản hồi của mạng thành đối tượng JavaScript bằng cách sử dụng 9Nhưng đôi khi chúng tôi không may mắn như vậy — đôi khi chúng tôi nhận được một chuỗi JSON thô và chúng tôi cần tự chuyển đổi nó thành một đối tượng. Và khi chúng tôi muốn gửi một đối tượng JavaScript trên mạng, chúng tôi cần chuyển đổi nó thành JSON (một chuỗi) trước khi gửi nó. May mắn thay, hai vấn đề này rất phổ biến trong quá trình phát triển web nên có sẵn một đối tượng JSON tích hợp sẵn trong trình duyệt, chứa hai phương thức sau
Bạn có thể thấy cái đầu tiên đang hoạt động trong Heroes-finished-json-parse của chúng tôi. html (xem mã nguồn) — điều này thực hiện chính xác như ví dụ mà chúng tôi đã xây dựng trước đó, ngoại trừ điều đó
Đoạn mã chính ở đây
Như bạn có thể đoán, 1 hoạt động theo cách ngược lại. Hãy thử nhập từng dòng sau vào bảng điều khiển JavaScript của trình duyệt của bạn để xem nó hoạt động như thế nào 0Ở đây chúng ta đang tạo một đối tượng JavaScript, sau đó kiểm tra xem nó chứa gì, sau đó chuyển đổi nó thành một chuỗi JSON bằng cách sử dụng 1 — lưu giá trị trả về trong một biến mới — sau đó kiểm tra lạiBạn đã đọc đến cuối bài viết này, nhưng liệu bạn có nhớ được thông tin quan trọng nhất không? . JSON Trong bài viết này, chúng tôi đã cung cấp cho bạn hướng dẫn đơn giản về cách sử dụng JSON trong chương trình của bạn, bao gồm cách tạo và phân tích cú pháp JSON cũng như cách truy cập dữ liệu bị khóa bên trong nó. Trong bài viết tiếp theo, chúng ta sẽ bắt đầu xem xét JavaScript hướng đối tượng Làm cách nào để chuyển đổi dữ liệu biểu mẫu HTML sang đối tượng JSON?Bạn cũng có thể sử dụng trực tiếp forEach trên đối tượng FormData. đối tượng var = {}; . forEach(function(value, key){ object[key] = value; }); . xâu chuỗi (đối tượng);
Làm cách nào để gửi dữ liệu biểu mẫu HTML dưới dạng JSON?Sau đây là các bước. . Tạo biểu mẫu với đầu vào của nó và gửi đầu vào/nút như bạn thường làm Cung cấp cho biểu mẫu một Id duy nhất Thêm trình xử lý sự kiện gửi vào biểu mẫu và chuyển đối tượng sự kiện cùng với nó Xây dựng phần thân yêu cầu ở định dạng JSON bằng lớp FormData Thêm bất kỳ tiêu đề nào, nếu cần Làm cách nào để lưu dữ liệu biểu mẫu ở định dạng JSON?Sử dụng JSON. phương thức stringify() sau đó định dạng dữ liệu dạng đơn giản dưới dạng JSON. Chỉ định phương thức yêu cầu HTTP là POST và sử dụng trường tiêu đề của API Tìm nạp xác định rằng bạn đang gửi yêu cầu nội dung JSON và chấp nhận phản hồi JSON trở lại. Sau đó, đặt phần thân yêu cầu dưới dạng JSON được tạo từ các trường biểu mẫu.
Làm cách nào để chuyển đổi dữ liệu biểu mẫu thành đối tượng JSON?Cách chuyển đổi dữ liệu biểu mẫu thành JSON với đối tượng. fromEntries() Lưu ý. Đối với cả hai phương pháp, chúng ta có thể sử dụng JSON. stringify() để chuyển đổi đối tượng thành chuỗi JSON, sau đó chúng ta có thể sử dụng chuỗi này để gửi dữ liệu được mã hóa JSON tới API |