JSON.parse()方法

admin發表於2018-07-28

關於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格式字串轉換為物件一章節。

相關文章