JSON.stringify()方法


JSON.stringify()方法用於將一個值轉為JSON字符串,該字符串符合JSON格式,並且可以被JSON.parse()方法還原

一、使用JSON.stringify()方法返回的效果,以及需要注意的地方

例如:

 

 

 !!!!!!原始類型的字符串,轉換之后會帶雙引號

 

注意:

 看到這個表達式,第一反應應該是true,結果是false

 分開打印看下效果就一目了然,這是因為內層的雙引號可以讓引擎知道,這是個字符串,
如果內層沒有雙引號,在還原時,Javascript引擎就無法知道是原始值是字符串還是布爾值

 上面代碼中,字符串foo,被轉成了"\"foo\""

 

二、注意

 數組成員是undefined、函數或者XML對象,都會被轉成null

 上面代碼中,對象obj的a屬性是undefined,b是一個函數,轉變之后都會被過濾掉

 如果是正則對象,會被轉成空對象(文章最后有解決方法)

 JSON.stringify()方法會忽略對象的不可遍歷屬性

所以,當你使用JSON.stringify()方法時遇到一些問題,綜合上面的情況,也許可以更快解決

 

三、JSON.stringify()方法第二個參數

1.可以接受一個數組作為第二個參數,指定參數對象的那些屬性需要轉成字符串(數組無效)

 2.第二個參數還可以是一個函數,(函數不能是undefined,否則會被忽略)

 四、第三個參數

JSON.stringify()還可以接受第三個參數,用於增加返回的 JSON 字符串的可讀性。

默認返回的是單行字符串,對於大型的 JSON 對象,可讀性非常差。第三個參數使得每個屬性單獨占據一行,並且將每個屬性前面添加指定的前綴(不超過10個字符)。

 如果第三個參數是數字,那就是每個屬性前面添加的空格

 五、參數的toJSON()方法

如果參數對象有自定義的toJSON()方法,那么JSON.stringify()會使用這個方法的返回值作為參數,而忽略原對象的其他屬性。

 Date對象就有一個自己的toJSON()方法

 toJSON()方法的一個應用是,將正則對象自動轉為字符串。因為JSON.stringify()默認不能轉換正則對象,但是設置了toJSON()方法以后,就可以轉換正則對象了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM