Stringify là gì

Bạn đang xem: Stringify là gì
const obj = answer: 42 ;const str = JSON.stringify(obj);str; // ""answer":42"typeof str; // "string"JSON.stringify() áp dụng tầm thường cùng với hàm JSON.parse(), đây là giải pháp ta sao chép một Object mà lại không tác động đến Object cũ.
const obj = answer: 42 ;const clone = JSON.parse(JSON.stringify(obj));clone.answer; // 42clone === obj; // false
Trường phù hợp đặc biệt quan trọng với lỗi.
1. lúc một Object bao gồm một property trỏ về bao gồm nó, JSON.stringify() trả về 1 errorconst obj = ;obj.prop = obj;// Throws "TypeError: TypeError: Converting circular structure to lớn JSON"JSON.stringify(obj);2. Các ngôi trường đúng theo NaN với Infinity, JSON.stringify() sẽ trả về nullconst obj = nan: parseInt("not a number"), inf: Number.POSITIVE_INFINITY;JSON.stringify(obj) // ""nan":null,"inf":null"3. Lọc bỏ hết toàn bộ những quý giá undefined hay functionconst obj = fn: function() , undef: undefined;JSON.stringify(obj) // ""Các tmê mệt số còn lại của JSON.stringify()
JSON.stringify() thừa nhận vào 3 tsi mê số , nhiều phần họ không biết đến 2 tham mê số sót lại.Tyêu thích số thứ hai là 1 trong hàm replacer, một hàm nhận vào 1 cặp key/value hoàn toàn có thể thực hiện để biến hóa output sau cùng.
Xem thêm: Game Tieu Doi Diet Zombie 3, Chơi Game Tiểu Đội Diệt Thây Ma 2
const obj = a: 1, b: 2, c: 4, d: e: 4 ;//Nếu là number thì tăng thêm 1JSON.stringify(obj, function replacer(key, val) if(typeof val === "number") return val + 1; return val;)// ""a":2,"b":3,"c":4,"d":"e":5"Tđê mê số lắp thêm 3 là spaces, cho phép format lại đoạn code in ra console. Có các cách để hiển thị ra vật dụng nhưng ta mong muốn.
const obj = a: 1, b: 2, c: 4, d: e: 4 ;JSON.stringify(obj);// ""a":1,"b":2,"c":3,"d":"e":4"JSON.stringify(obj, null, " ");// hoặcJSON.stringify(obj, null, 2);// // "a": 1,// "b": 2,// "c": 3,// "d": // "e": 4// // //Không duy nhất thiết nên là lốt khoảng tầm trắngJSON.stringify(obj, null, "__"); // // __"a": 1,// __"b": 2,// __"c": 3,// __"d": // ____"e": 4// __// ví dụ như nhỏng ta có thể lược bỏ tài liệu nhạy bén nlỗi password thoát khỏi Object bằng JSON.stringify().
const obj = name: "John Doe", password: "isLuckyman", nested: hashedPassword: "c3RhcmdhemVy" ;JSON.stringify(obj, function replacer(key, val) if(key.match(/password/i)) return undefined; return val;);// ""name":"John Doe","nested": "
Hàm toJSON()
Khi trải qua hàm JSON.stringify() giả dụ bên trong Object bao gồm hàm toJSON(), thì nó sẻ trả về kết quả của hàm này.Xem thêm: Bột Đậu Đỏ Đắp Mặt Có Tác Dụng Gì ? Tại Sao Bột Được Các Tín Đồ Làm Đẹp
const obj = name: "John Doe", nested: test: "nothing to lớn show", toJSON: () => "test" ;JSON.stringify(obj);// ""name":"John Doe","nested":"test""Rất các thư viện sử dụng JSON.stringify() kết hợp toJSON() nhằm đảm bảo an toàn output dịp serialize ra đúng cùng với mong muốn nlỗi Moment objects cùng Mongoose documents. Hy vọng nội dung bài viết để giúp các bạn cũng có thể hiểu rõ với thực hiện JSON.stringigy() hợp lí và công dụng.