JSON .stringify()
Công dụng phổ biến của JSON là trao đổi dữ liệu đến/từ máy chủ web.
Khi gửi dữ liệu đến máy chủ web, dữ liệu phải là một chuỗi.
Chuyển đổi một đối tượng JavaScript thành một chuỗi bằng JSON.stringify()
.
Chuỗi hóa một đối tượng JavaScript
Hãy tưởng tượng chúng ta có đối tượng này trong JavaScript:
const obj = {name: "John", age: 30, city: "New York"};
Sử dụng hàm JavaScript JSON.stringify()
để chuyển đổi nó thành chuỗi.
const myJSON = JSON.stringify(obj);
Kết quả sẽ là một chuỗi theo ký hiệu JSON.
myJSON
hiện là một chuỗi và sẵn sàng được gửi đến máy chủ:
Ví dụ
const obj = {name: "John", age: 30, city: "New York"};
const myJSON =
JSON.stringify(obj);
Hãy tự mình thử »Bạn sẽ học cách gửi JSON đến máy chủ trong các chương tiếp theo.
Xâu chuỗi một mảng JavaScript
Cũng có thể xâu chuỗi các mảng JavaScript:
Hãy tưởng tượng chúng ta có mảng này trong JavaScript:
const arr = ["John", "Peter", "Sally", "Jane"];
Sử dụng hàm JavaScript JSON.stringify()
để chuyển đổi nó thành chuỗi.
const myJSON = JSON.stringify(arr);
Kết quả sẽ là một chuỗi theo ký hiệu JSON.
myJSON
hiện là một chuỗi và sẵn sàng được gửi đến máy chủ:
Ví dụ
const arr = ["John", "Peter", "Sally", "Jane"];
const myJSON =
JSON.stringify(arr);
Hãy tự mình thử »Bạn sẽ tìm hiểu cách gửi chuỗi JSON đến máy chủ trong các chương tiếp theo.
Lưu trữ dữ liệu
Khi lưu trữ dữ liệu, dữ liệu phải có một định dạng nhất định và bất kể bạn chọn lưu trữ ở đâu thì văn bản luôn là một trong những định dạng hợp pháp.
JSON cho phép lưu trữ các đối tượng JavaScript dưới dạng văn bản.
Ví dụ
Lưu trữ dữ liệu trong bộ nhớ cục bộ
// Storing data:
const myObj = {name: "John",
age: 31, city: "New York"};
const myJSON =
JSON.stringify(myObj);
localStorage.setItem("testJSON", myJSON);
// Retrieving data:
let text = localStorage.getItem("testJSON");
let obj =
JSON.parse(text);
document.getElementById("demo").innerHTML = obj.name;
Hãy tự mình thử » Ngoại lệ
Chuỗi ngày
Trong JSON, các đối tượng ngày không được phép. Hàm JSON.stringify()
sẽ chuyển đổi bất kỳ ngày nào thành chuỗi.
Ví dụ
const obj = {name: "John", today: new Date(), city : "New York"};
const myJSON = JSON.stringify(obj);
Hãy tự mình thử »Bạn có thể chuyển đổi chuỗi trở lại thành đối tượng ngày ở máy thu.
Xâu chuỗi các hàm
Trong JSON, các hàm không được phép làm giá trị đối tượng.
Hàm JSON.stringify()
sẽ xóa mọi hàm khỏi đối tượng JavaScript, cả khóa và giá trị:
Ví dụ
const obj = {name: "John", age: function () {return 30;}, city: "New York"};
const myJSON = JSON.stringify(obj);
Hãy tự mình thử » Bạn có thể bỏ qua điều này nếu bạn chuyển đổi các hàm của mình thành chuỗi trước khi chạy hàm JSON.stringify()
.
Ví dụ
const obj = {name: "John", age: function () {return 30;}, city: "New York"};
obj.age = obj.age.toString();
const myJSON = JSON.stringify(obj);
Hãy tự mình thử »Nếu bạn gửi các hàm bằng JSON, các hàm đó sẽ mất phạm vi và người nhận sẽ phải sử dụng eval() để chuyển đổi chúng trở lại thành các hàm.