Stringify Là Gì

     
*
JSON.stringify ( ) là một trong hàm tầm độ lớn trong Javascript để gửi một Object quý phái JSON. Có khá nhiều thư viện thực hiện JSON.stringify ( ) như res.json ( ) vào Express, post ( ) vào Axios với cả Webpack stats. Trong nội dung bài viết này mình sẽ diễn đạt một bí quyết tổng quan lại về JSON.stringify ( ) gồm gồm cả hồ hết trường đúng theo lỗi .Bạn đang xem : Stringify là gì

const obj = answer: 42 ;const str = JSON.stringify(obj);str; // ““answer”:42”typeof str; // “string”JSON.stringify() sử dụng chung cùng với hàm JSON.parse(), đây là cách ta sao chép một Object cơ mà không ảnh hưởng đến Object cũ.

Bạn đang xem: Stringify là gì


const obj = answer : 42 ; const clone = JSON.parse ( JSON.stringify ( obj ) ) ; clone.answer ; / / 42 clone = = = obj ; / / false


Trường hợp đặc biệt và lỗi.

1. Khi 1 Object gồm một property trỏ về thiết yếu nó, JSON.stringify() trả về 1 errorconst obj = ;obj.prop = obj;// Throws “TypeError: TypeError: Converting circular structure khổng lồ JSON”JSON.stringify(obj);2. Những trường hòa hợp NaN cùng Infinity, JSON.stringify() vẫn trả về nullconst obj = nan: parseInt(“not a number”), inf: Number.POSITIVE_INFINITY;JSON.stringify(obj) // ““nan”:null,”inf”:null”3. Lọc quăng quật hết tất cả các quý hiếm undefined tốt functionconst obj = fn: function() , undef: undefined;JSON.stringify(obj) // “”

Các tham số còn lại của JSON.stringify()

JSON.stringify() thừa nhận vào 3 tham số, nhiều phần họ không nghe biết 2 thông số còn lại.1. Khi 1 Object tất cả một property trỏ về chính nó, JSON.stringify ( ) trả về 1 errorconst obj = ; obj.prop = obj ; / / Throws ” TypeError : TypeError : Converting circular structure to JSON ” JSON.stringify ( obj ) ; 2. Những trường vừa lòng NaN và Infinity, JSON.stringify ( ) đang 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 diện và tổng thể những quý hiếm undefined giỏi functionconst obj = fn : function ( ) , undef : undefined ; JSON.stringify ( obj ) / / ” ” JSON.stringify ( ) nhận vào 3 tham số, nhiều phần tất cả bọn họ không biết đến 2 tham số còn sót lại .

Xem thêm: Tìm Việc Lái Xe Ở Quận 2 ), Tuyển Lái Xe Quận 2 Lương Cao, Mới Nhất


Tham số sản phẩm công nghệ 2 là một hàm replacer, một hàm nhấn vào 1 cặp key/value có thể sử dụng để biến đổi output sau cùng.


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 tuyệt nhất thiết cần là dấu khoảng chừng trắngJSON.stringify(obj, null, “__”); // // __”a”: 1,// __”b”: 2,// __”c”: 3,// __”d”: // ____”e”: 4// __// Ví dụ như ta hoàn toàn có thể lược bỏ dữ liệu nhạy cảm như password ra khỏi Object bằng JSON.stringify().

Xem thêm: New Vnds Là Gì - Tên Giao Dịch Chính Thức Của Vndirect Là Gì


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() nếu phía bên trong Object có hàm toJSON(), thì nó sẻ trả về kết quả của hàm này.Khi đi qua hàm JSON.stringify ( ) nếu phía bên trong Object tất cả hàm toJSON ( ), thì nó sẻ trả về chức năng của hàm này .const obj = name : ” John Doe “, nested : demo : ” nothing to lớn show “, toJSON : ( ) => ” chạy thử ” ; JSON.stringify ( obj ) ; / / ” ” name ” : ” John Doe “, ” nested ” : ” test ” ” rất nhiều thư viện sử dụng JSON.stringify ( ) phối hợp toJSON ( ) để đảm bảo an toàn output lúc serialize ra đúng với mong muốn như Moment objects với Mongoose documents. Hy vọng nội dung bài viết sẽ giúp những các bạn hoàn toàn có thể hiểu rõ và sử dụng JSON.stringigy ( ) hài hòa và hợp lý và phải chăng và công suất cao .