JSON.parse() 方法
JSON.parse()方法是JSON物件的兩個靜態方法之一。
通過JSON.stringify()方法可以將引數轉換為JSON資料,具體參閱JSON.stringify()一章節。
而利用JSON.parse()可以將JSON資料解析為最初的資料,當然有很多細節需要注意。
關於JSON物件更多內容可以參閱JSON 物件一章節。
語法結構:
[JavaScript] 純文字檢視 複製程式碼JSON.parse(text [, reviver])
引數解析:
1.text:必需,一個有效的JSON格式字串。
2.reviver:可選,一個函式,它用來轉換已經被從text字串轉為物件的物件,規則如下:
(1).如果reviver返回一個有效值,則對應的屬性值將替換為轉換後的值。
(2).如果reviver返回它接收的相同值,則不修改對應屬性值。
(3).如果reviver返回undefined,則刪除對應的屬性。
程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼執行程式碼let jsonStr=JSON.stringify("螞蟻部落"); let jsonNum=JSON.stringify(5); let jsonBool=JSON.stringify(true); console.log(jsonStr.length); console.log(typeof jsonNum); console.log(typeof jsonBool); console.log(JSON.parse(jsonStr).length); console.log(typeof JSON.parse(jsonNum)); console.log(typeof JSON.parse(jsonBool));
程式碼執行效果截圖如下:
上述程式碼演示了JSON.parse()方法解析還原資料的功能。
程式碼很簡單,唯一需要說明一下就是字串長度的變化,分析如下:
(1).字串"螞蟻部落",最初由四個字元組成,這一點毫無疑問。
(2).JSON.stringify方法處理後可以理解變成了'"螞蟻部落"',雙引號也被轉換為普通的字元了。
[JavaScript] 純文字檢視 複製程式碼執行程式碼let jsonStr='{"webName":"螞蟻部落","url":"softwhy.com","age":"2"}'; let antzone=JSON.parse(jsonStr); console.log(antzone.webName);
上面程式碼,省略第二個引數,直接將JSON字串轉換為JavaScript物件字面量。
[JavaScript] 純文字檢視 複製程式碼執行程式碼let antzone={ webName:"螞蟻部落", age:undefined } let jsonStr=JSON.stringify(antzone); console.log(JSON.parse(jsonStr));
程式碼執行效果截圖如下:
我們知道undefined、function函式和Symbol是不被JSON所支援的。
通過JSON.stringify方法轉換後,age屬性會被忽略,再通過JSON.parse()方法解析也不會回到最初。
[JavaScript] 純文字檢視 複製程式碼執行程式碼function reviver(key,value){ if(key=="webName"){ return "antzone"; } return value; } let jsonStr='{"webName":"螞蟻部落","url":"softwhy.com","age":"2"}'; let antzone=JSON.parse(jsonStr,reviver); console.log(antzone);
上面程式碼中,使用第二個引數進行轉換,下面對此引數函式做一下簡單介紹:
(1).此函式具有兩個引數,第一個引數是屬性名稱,第二個引數是屬性值。
(2).此函式會對js物件的每一個成員支援相應的轉換操作。
上面的程式碼會將物件中,屬性名稱為"webName"的值會被修改為"antzone"。
[JavaScript] 純文字檢視 複製程式碼執行程式碼function reviver(key,value){ if(key=="webName"){ return "antzone"; }else if(key=="age"){ return undefined; } return value; } let jsonStr='{"webName":"螞蟻部落","url":"softwhy.com","age":2}'; let antzone=JSON.parse(jsonStr,reviver); console.log(antzone);
轉換函式返回值是undefined,那麼對應的屬性就會被刪除。
相關文章
- JSON.parse()方法JSON
- JSON.parse 新手入門JSON
- JSON.parse()出錯解決JSON
- JSON.parse與JSON.stringify(object)JSONObject
- 如何實現一個JSON.parseJSON
- JSON.parse () 的非嚴格模式JSON模式
- 當JSON.parse“遇上”非鍵值對JSON
- JSON.parse 和 JSON.stringify 詳解JSON
- 有意思的JSON.parse()、JSON.stringify()JSON
- 快應用如何避免JSON.parse()解析出錯JSON
- JavaScript的高精度計算與JSON.parse的BIGINTJavaScriptJSON
- JSON.parse()與JSON.stringify()的用法,以及eval()和new FunctionJSONFunction
- JavaScript 中 structuredClone 和 JSON.parse(JSON.stringify()) 克隆物件的區別JavaScriptStructJSON物件
- JSON.stringify()與JSON.parse()沒有你想的那樣簡單JSON
- 為什麼JSON.parse會損壞大數字,如何解決這個問題?JSON
- 相容系列-JSON.parse()轉字串為json物件,解決IE7及以下不相容問題JSON字串物件
- 實現深拷貝還在用JSON.parse(JSON.stringify(obj))?帶你用JS實現一個完整版深拷貝函式JSONOBJ函式
- Java中parse方法,ValueOf方法,toString方法Java
- Java的方法靜態方法Java
- js includes方法 和 filter方法JSFilter
- 方法
- initialize方法與load方法比較
- Java System類,currentTimeMillis方法,arraycopy方法。Java
- Java方法03:方法的過載Java
- [方法]需求挖掘採集的方法
- javaSE-day04--ArrayList基本用方法、類內定義方法和方法過載、靜態方法static(類的方法)、工具方法(static)的定義和使用Java
- wait()方法與await()方法的區別AI
- Python - 物件導向程式設計 - 例項方法、靜態方法、類方法Python物件程式設計
- getPropertyPriority() 方法
- deleteRule() 方法delete
- getPropertyValue() 方法
- getBoundingClientRect() 方法GCclient
- removeProperty() 方法REM
- Equals方法
- call() 方法
- Promise then() 方法Promise
- 一、方法
- 迭代方法