JSON.parse()方法
關於JSON物件可以參閱JSON物件簡單介紹一章節。
JSON.parse方法可以將JSON格式字串轉換為物件。
語法結構:
[JavaScript] 純文字檢視 複製程式碼JSON.parse(text [, reviver])
引數解析:
1.text:必需,一個有效的JSON格式字串。
2.reviver:可選,一個函式,它用來轉換已經被從text字串轉為物件的物件,規則如下:
(1).如果reviver返回一個有效值,則對應的屬性值將替換為轉換後的值。
(2).如果reviver返回它接收的相同值,則不修改對應屬性值。
(3).如果reviver返回undefined,則刪除對應的屬性。
程式碼例項:
[JavaScript] 純文字檢視 複製程式碼執行程式碼var jsonStr='{"webName":"螞蟻部落","url":"softwhy.com","age":"2"}'; var obj=JSON.parse(jsonStr); console.log(obj.webName);
上面的程式碼中,省略了第二個引數,非常的簡單,直接將json字串轉換為javascript物件字面量。
[JavaScript] 純文字檢視 複製程式碼執行程式碼function reviver(key,value){ if(key=="webName"){ return "antzone"; } return value; } var jsonStr='{"webName":"螞蟻部落","url":"softwhy.com","age":"2"}'; var obj=JSON.parse(jsonStr,reviver); console.log(obj);
在上面的程式碼中,使用第二個引數進行轉換,下面對此引數函式做一下簡單介紹:
(1).此函式具有兩個引數,第一個引數是屬性名稱,第二個引數是屬性值。
(2).此函式會對js物件的每一個成員支援相應的轉換操作。
上面的程式碼會將物件中,屬性名稱為"webName"的值會被修改為"antzone"。
[JavaScript] 純文字檢視 複製程式碼執行程式碼function reviver(key,value){ if(key=="webName"){ return "antzone"; }else if(key=="age"){ return undefined; } return value; } var jsonStr='{"webName":"螞蟻部落","url":"softwhy.com","age":"2"}'; var obj=JSON.parse(jsonStr,reviver); console.log(obj);
轉換函式返回值是undefined,那麼對應的屬性就會被刪除。
想要相對確切的瞭解實現原理,建議閱讀json2.js檔案原始碼,JSON.parse()方法具有相容問題。
要實現全相容可以參閱JSON格式字串轉換為物件一章節。
相關文章
- 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
- 一、方法
- 迭代方法