Cách sử dụng JSON.parse () và JSON.stringify ()
Đối tượngJSON
, có sẵn trong tất cả các trình duyệt hiện đại, có hai phương pháp hữu ích để xử lý nội dung có định dạng JSON: parse
và stringify
. JSON.parse()
nhận một chuỗi JSON và biến nó thành một đối tượng JavaScript. JSON.stringify()
nhận một đối tượng JavaScript và chuyển đổi nó thành một chuỗi JSON. Đây là một ví dụ:
const myObj = { name: 'Skip', age: 2, favoriteFood: 'Steak' }; const myObjStr = JSON.stringify(myObj); console.log(myObjStr); // "{"name":"Sammy","age":6,"favoriteFood":"Tofu"}" console.log(JSON.parse(myObjStr)); // Object {name:"Sammy",age:6,favoriteFood:"Tofu"}
Và mặc dù các phương thức thường được sử dụng trên các đối tượng, chúng cũng được dùng trên các mảng:
const myArr = ['bacon', 'lettuce', 'tomatoes']; const myArrStr = JSON.stringify(myArr); console.log(myArrStr); // "["shark","fish","dolphin"]" console.log(JSON.parse(myArrStr)); // ["shark","fish","dolphin"]
JSON.parse()
JSON.parse()
có thể nhận một hàm làm đối số thứ hai có thể biến đổi các giá trị đối tượng trước khi chúng được trả về. Ở đây các giá trị của đối tượng được chuyển thành chữ hoa trong đối tượng trả về của phương thức parse
pháp:
const user = { name: 'Sammy', email: 'Sammy@domain.com', plan: 'Pro' }; const userStr = JSON.stringify(user); JSON.parse(userStr, (key, value) => { if (typeof value === 'string') { return value.toUpperCase(); } return value; });
Lưu ý: Dấu phẩy ở cuối không hợp lệ trong JSON, vì vậy JSON.parse()
sẽ thông báo lỗi nếu chuỗi được chuyển tới nó có dấu phẩy ở cuối.
JSON.stringify()
JSON.stringify()
có thể nhận thêm hai đối số, đối số đầu tiên là hàm replacer
và đối số thứ hai là giá trị String
hoặc Number
để sử dụng làm space
trong chuỗi trả về.
Hàm thay thế được dùng để lọc ra các giá trị, vì bất kỳ giá trị nào được trả về là undefined
sẽ nằm ngoài chuỗi trả về:
const user = { id: 229, name: 'Sammy', email: 'Sammy@domain.com' }; function replacer(key, value) { console.log(typeof value); if (key === 'email') { return undefined; } return value; } const userStr = JSON.stringify(user, replacer); // "{"id":229,"name":"Sammy"}"
Và một ví dụ với đối số space
trắng được truyền vào:
const user = { name: 'Sammy', email: 'Sammy@domain.com', plan: 'Pro' }; const userStr = JSON.stringify(user, null, '...'); // "{ // ..."name": "Sammy", // ..."email": "Sammy@domain.com", // ..."plan": "Pro" // }"
Kết luận
Trong hướng dẫn này, bạn đã khám phá cách sử dụng các phương thức JSON.parse()
và JSON.stringify()
. Nếu bạn muốn tìm hiểu thêm về cách làm việc với JSON trong Javascript, hãy xem Hướng dẫn Cách làm việc với JSON trong JavaScript của ta .
Để biết thêm thông tin về cách viết mã trong JavaScript, hãy xem loạt bài Cách viết mã trong JavaScript hoặc xem trang chủ đề JavaScript của ta để biết các bài tập và dự án lập trình.
Các tin liên quan