一文詳解JSON.parse和JSON.stringify的用法
前言
平時我們在接收后端返回的json對象通常是一個字符串類型的object,所以一般我們要對這個object進(jìn)行類型轉(zhuǎn)化后,我們才能使用object里面的數(shù)據(jù),而這其中涉及到兩個必不可少的方法就是JSON.parse和JSON.stringify
JSON.parse()
JSON.parse()方法將JSON格式字符串轉(zhuǎn)換為js對象(屬性名沒有雙引號)
解析前要保證數(shù)據(jù)是標(biāo)準(zhǔn)的JSON格式,否則會解析出錯
const user = '{"name": "Jack","gender": "男","age": 18,"major":"computer"}' console.log(JSON.parse(user)); //user = { name:"Jack", gender:"男", age:18, major:"computer"}
輸出結(jié)果:
const users = '[{"id":101,"name":"計算機(jī)科學(xué)"},{"id":102,"name":"軟件工程"}]' console.log(JSON.parse(users)); // 結(jié)果 users= [ {id:101,name:"計算機(jī)科學(xué)"}, {id:102,name:"軟件工程"} ]
JSON.stringify()
const user = {"name": "Jack","gender": "男","age": 18,"major":"computer"} console.log(user);
console.log()沒有輸出我們想要的結(jié)果。它輸出了[Object],因為從對象到字符串的默認(rèn)轉(zhuǎn)換是“[Object]”。因此,我們使用JSON.stringify()先將對象轉(zhuǎn)換為字符串
console.log(JSON.stringify(user));
但是,stringify()其實還可以傳入其他的參數(shù)從而方便我們查找數(shù)據(jù),讓我們接著往下看
第二個參數(shù)(數(shù)組)
假如存在這樣一個場景,一個學(xué)生擁有很多個手機(jī)號碼,我們想迅速定位到該學(xué)生的某個手機(jī)號,我們可以在stringify()第二個位置以數(shù)組的形式加參數(shù)來進(jìn)行查找
const user = {"name": "Jack", "gender": "男", "age": 18, "major":"computer", "phonenumber":123, "phonenumber1":456, "phonenumber2":789, "phonenumber3":321, "phonenumber4":654, "phonenumber5":987 } console.log(JSON.stringify(user,['phonenumber3']));
輸出結(jié)果:
第三個參數(shù)(數(shù)字)
第三個參數(shù)控制最終字符串里的間距。如果參數(shù)是一個數(shù)字,則字符串化中的每個級別,都將縮進(jìn)這個空格字符數(shù)。即不傳這個參數(shù)一行顯示,加了分行顯示。
const user = {"name": "Jack", "gender": "男", "age": 18, "major":"computer", "phonenumber":123, "phonenumber1":456, "phonenumber2":789, "phonenumber3":321, "phonenumber4":654, "phonenumber5":987 } console.log(user); console.log(JSON.stringify(user,null,2));
輸出結(jié)果:
第三個參數(shù)(字符串)
如果第三個參數(shù)是字符串,則用它來代替上面顯示的空格字符。我這里傳入**
const user = {"name": "Jack", "gender": "男", "age": 18, "major":"computer", "phonenumber":123, "phonenumber1":456, "phonenumber2":789, "phonenumber3":321, "phonenumber4":654, "phonenumber5":987 } console.log(JSON.stringify(user,null,'**'));
輸出結(jié)果:
toJSON函數(shù)
我們有一個名為toJSON的類函數(shù),它的屬性是可以作為任何對象的一部分。JSON.stringify返回這個函數(shù)的結(jié)果并對其進(jìn)行字符串化,而不是將全部對象轉(zhuǎn)換為字符串。
const user = { firstName : "Prateek", lastName : "Singh", age : 26, toJSON(){ return { fullName: `${this.firstName}${this.lastName}` } } } console.log(JSON.stringify(user));
輸出結(jié)果:
可以看到,它不是輸出全部對象,而是只有toJSON函數(shù)的結(jié)果。
此外,JS還有一個功能函數(shù)是parseInt,注意不要將它和JSON.parse( )混淆了,parseInt函數(shù)的功能是可解析一個字符串,返回一個整數(shù)。假如有一個字符串類型的數(shù)字,經(jīng)過轉(zhuǎn)化后就會變成一個數(shù)字類型的數(shù)字,如果是字母類型的字符串則返回NaN。
小技巧:直接加+也可以起到parseInt的作用。
參考的文章:https://baijiahao.baidu.com/s?id=1662484165706074595&wfr=spider&for=pc
總結(jié)
到此這篇關(guān)于JSON.parse和JSON.stringify用法的文章就介紹到這了,更多相關(guān)JSON.parse和JSON.stringify用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- JSON.parse()和JSON.stringify()使用介紹
- 關(guān)于JSON.parse(),JSON.stringify(),jQuery.parseJSON()的用法
- 談?wù)凧SON對象和字符串之間的相互轉(zhuǎn)換JSON.stringify(obj)和JSON.parse(string)
- 深入淺析JSON.parse()、JSON.stringify()和eval()的作用詳解
- JS使用JSON.parse(),JSON.stringify()實現(xiàn)對對象的深拷貝功能分析
- 詳解關(guān)于JSON.parse()和JSON.stringify()的性能小測試
- JSON中key動態(tài)設(shè)置及JSON.parse和JSON.stringify()的區(qū)別
- 淺談JSON.parse()和JSON.stringify()
- JavaScript 中 JSON.parse 函數(shù) 和 JSON.stringify 函數(shù)
- json.stringify()與json.parse()的區(qū)別以及用處
相關(guān)文章
利用javascript移動div層-javascript 拖動層
利用javascript開發(fā)在界面上隨意拖動以下html code中的div層2009-03-03微信小程序?qū)崿F(xiàn)modal彈出框遮罩層組件(可帶文本框)
這篇文章主要給大家介紹了關(guān)于微信小程序?qū)崿F(xiàn)modal彈出框遮罩層組件(可帶文本框)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12video.js 實現(xiàn)視頻只能后退不能快進(jìn)的思路詳解
這篇文章主要介紹了video.js 實現(xiàn)視頻只能后退不能快進(jìn)的思路詳解,主要思路是點擊進(jìn)度條需要獲取拖動前的時間點,具體實例代碼大家跟隨小編一起看看吧2018-08-08JavaScript實現(xiàn)讀取與輸出XML文件數(shù)據(jù)的方法示例
這篇文章主要介紹了JavaScript實現(xiàn)讀取與輸出XML文件數(shù)據(jù)的方法,結(jié)合實例形式分析了JavaScript基于ActiveXObject實現(xiàn)載入、讀取與輸出xml文件數(shù)據(jù)的相關(guān)操作技巧,需要的朋友可以參考下2018-06-06javascript 判斷數(shù)組是否已包含了某個元素的函數(shù)
javascript判斷數(shù)組是否已包含了某個元素的js函數(shù),方便數(shù)組的判斷。2010-05-05js將json格式內(nèi)容轉(zhuǎn)換成對象的方法
這篇文章介紹了js將json格式內(nèi)容轉(zhuǎn)換成對象的方法,有需要的朋友可以參考一下2013-11-11