Xử Lý JSON Tới Server Với JavaScript - Lập Trình Từ Đầu
Có thể bạn quan tâm
JSON là một mô hình dạng dữ liệu mở đang được sử dụng rất phổ biến. Việc xử lý dữ liệu JSON rất quan trọng trong lập trình hiện nay. Mô hình chung của việc sử lý dữ liệu JSON sẽ như sau:
- Máy khách kết nối tới máy chủ và gửi yêu cầu tài nguyên
- Máy chủ xử lý và trả tài nguyên về dưới dạng JSON
- Máy khách sẽ phân tích chuỗi JSON, thường sẽ trả về dạng object hoặc array. Xử lý dữ liệu và hiển thị cho người dùng.
2.1. Dùng phương thức JSON.parse() để tạo ra object JavaScript
Để chuyển hóa một chuỗi JSON sang một đối tượng trong Js, chúng ta dùng hàm dựng sẵn JSON.parse(). Phương thức này sẽ tạo ra một đối tượng, với tên các thuộc tính là tham số key , và giá trị của thuộc tính là value trong chuỗi JSON. Nếu trong chuỗi JSON có chứa mảng, đối tượng cũng sẽ chứa mảng.
Ví dụ:
var str='{ "company":"laptrinhtudau", "CEO":"Thành Nguyễn", "employees":[{"name": "Nam","age": 19},{"name": "Sơn","age": 19}] }'; var obj = JSON.parse(str); // đây là object javascript được tạo từ chuỗi JSON /* truy cập vào thuộc tính JSON bằng tên thuộc tính */ console.log(obj.company) ; // laptrinhtudau console.log(obj.employees[0].name) ; // Nam console.log(obj.employees[1].name) ; // SơnHoặc ta có thể thay đổi giá trị thuộc tính JSON bằng cách truy cập tên thuộc tính
var str = '{ "name" : "Thành Nguyễn" , "age" :19 }' ; var obj = JSON.parse(str) ; obj.name = “Nam Chu” ; // truy cập vào thuộc tính JSON bằng tên thuộc tính và đổi giá trị obj.age = 20; console.log(str); //{ "name" : "Nam Chu" , "age" : 20 }JSON.parse() cũng có thể nhận thêm tham số thứ 2 để kiểm tra mỗi thuộc tính trước khi trả về giá trị
var text = '{ "name":"Thành", "birth":"2002-10-08", "city":"Hà Nội"}'; var obj = JSON.parse(text, function (key, value) { if (key == "birth") { return new Date(value); } else { return value; } }); console.log(obj.birth);2.2. Dùng phương thức JSON.stringify() để tạo chuỗi JSON từ Object Javascript
Khi nhận được chuỗi JSON ta có thể dùng phương thức JSON.parse() để tạo ra object để làm việc. Vậy còn ngược lại? Khi ta cần tạo chuỗi JSON từ object thì làm sao? Bằng cách sử dụng phương thức JSON.stringify() giúp bạn chuyển đổi một đối tượng Js thành một văn bản có định dạng JSON
Ví dụ:
var obj = {name : "Thành Nguyễn", age : 19}; var text = JSON.stringify(obj); console.log(text); // {"name":"Thành Nguyễn","age":19}Trong JSON, đối tượng date là không được phép do đó JSON.stringify() sẽ chuyển đổi ngày bất kì thành chuỗi.
var obj = { name: "Thành Nguyễn", today: new Date(), city : "Hà Nội" }; var myJSON = JSON.stringify(obj); console.log(myJSON);Trong JSON, function cũng là không được phép làm giá trị của object do đó JSON.stringify() sẽ xóa bất kì hàm nào khỏi đối tượng Js(xóa luôn cả tên thuộc tính)
var obj = { name: "Thành Nguyễn", age: function () {return 19;}, city: "Hà Nội"}; var myJSON = JSON.stringify(obj); console.log(myJSON );Nếu muốn giữ lại function làm giá trị thì phải chuyển function thành chuỗi trước khi chạy phương thức JSON.stringify()
var obj = { name: "Thành Nguyễn", age: function () {return 19;}, city: "Hà Nội" }; obj.age = obj.age.toString(); var myJSON = JSON.stringify(obj); console.log(myJSON) 3. Gửi và nhận dữ liệu JSON bằng phương thức POSTNếu ta có dữ liệu được lưu trữ trong một đối tượng Js, ta có thể chuyển đổi đối tượng đó thành JSON và gửi nó đến máy chủ.
<!DOCTYPE html> <html> <body> <h2>Chuyển đổi một đối tượng JavaScript thành một chuỗi JSON và gửi nó đến máy chủ.</h2> <script> const myObj = { name: "Thành", age: 19, city: "Hà Nội" }; const myJSON = JSON.stringify(myObj); window.location = "demo_json.php?x=" + myJSON; </script> </body> </html>Mình đã nói về đối tượng location rồi nên sẽ không nhắc lại nữa. Nếu chưa xem thì các bạn có thể tham khảo tại đây
Sử dụng phương thức Post để gửi và nhận dữ liệu
//Gửi và nhận dữ liệu ở định dạng JSON bằng phương thức POST var xhr = new XMLHttpRequest(); var url = "url"; xhr.open("POST", url, true); xhr.setRequestHeader("Content-Type", "application/json"); xhr.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === 200) { var json = JSON.parse(xhr.responseText); console.log(json.email + ", " + json.password); } }; var data = JSON.stringify({"email": "[email protected]", "password": "101010"}); xhr.send(data); 4. Gửi và nhận dữ liệu JSON bằng phương thức GetNếu ta nhận được dữ liệu ở định dạng JSON, ta có thể dễ dàng chuyển đổi nó thành một đối tượng Js:
<!DOCTYPE html> <html> <body> <h2>Chuyển đổi một chuỗi JSON thành một đối tượng JavaScript.</h2> <p id="demo"></p> <script> const myJSON = '{"name":"Thành", "age":19, "city":"Hà Nội"}'; const myObj = JSON.parse(myJSON); document.getElementById("demo").innerHTML = myObj.name; </script> </body> </html>Sử dụng phương thức Get để gửi và nhận dữ liệu
// Gửi dữ liệu nhận ở định dạng JSON bằng phương thức GET // var xhr = new XMLHttpRequest(); var url = "url?data=" + encodeURIComponent(JSON.stringify({"email": "[email protected]", "password": "101010"})); xhr.open("GET", url, true); xhr.setRequestHeader("Content-Type", "application/json"); xhr.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === 200) { var json = JSON.parse(xhr.responseText); console.log(json.email + ", " + json.password); } }; xhr.send();Chú ý
Ta có thể yêu cầu JSON từ máy chủ bằng cách sử dụng AJAX . Miễn là phản hồi từ máy chủ được viết ở định dạng JSON, ta có thể phân tích cú pháp chuỗi thành một đối tượng Js. Sử dụng XMLHttpRequest để lấy dữ liệu từ máy chủ
<!DOCTYPE html> <html> <body> <h2>Tìm nạp tệp JSON bằng XMLHttpRequest</h2> <p id="demo"></p> <script> const xmlhttp = new XMLHttpRequest(); xmlhttp.onload = function() { const myObj = JSON.parse(this.responseText); document.getElementById("demo").innerHTML = myObj.name; } xmlhttp.open("GET", "json_demo.txt"); xmlhttp.send(); </script> </body> </html>Từ khóa » Chuyển Json Thành Mảng Javascript
-
rse() And ringify() - Viblo
-
Chuyển đổi Mảng Thành đối Tượng JSON Trong JavaScript - Morioh
-
Chuyển đổi Chuỗi JSON Thành Mảng Javascript
-
Xử Lý JSON Trong JAVASCRIPT - NIIT - ICT Hà Nội
-
Xử Lý Dữ Liệu JSON Đơn Giản Với Javascript - CodeLearn
-
Hướng Dẫn Xử Lý JSON Trong JavaScript - Openplanning
-
Sử Dụng JSON Trong Javascript - Thầy Long Web
-
Chuyển đổi Mảng Thành JSON? - HelpEx
-
rse Trong JavaScript - Lập Trình Từ Đầu
-
Cách Chuyển đổi Mảng Javascript Sang JSON
-
Tìm Hiểu Về JSON Trong JavaScript
-
Phân Tích Cú Pháp Javascript Json
-
Cách Chuyển đổi JSON Sang đối Tượng JavaScript
-
Truyền Dữ Liệu JSON Với JavaScript