亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

json.stringify()與json.parse()的區(qū)別以及用處

 更新時間:2021年01月25日 10:40:32   作者:Adelamm  
這篇文章主要介紹了json.stringify()與json.parse()的區(qū)別以及用處,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

一、JSON.stringify()和JSON.parse() 區(qū)別

我們都用過JSON.stringify()和JSON.parse() ,從名字上就能知道
JSON.stringify()的作用是將JavaScript對象轉換為JSON 字符串
JSON.parse()可以將JSON字符串轉為一個對象。

通俗易懂版:

  • JSON.stringify() 將對象a轉化成字符串s;
  • JSON.parse() 將字符串s轉化成對象a;

簡單點說,它們的作用是相對的,我用JSON.stringify()將對象a變成了字符串c,那么我就可以用JSON.parse()將字符串c還原成對象a。

let arr = [1,2,3];
JSON.stringify(arr);//'[1,2,3]'
typeof JSON.stringify(arr);//string

let string = '[1,2,3]';
console.log(JSON.parse(string))//[1,2,3]
console.log(typeof JSON.parse(string))//object

在使用JSON.parse()需要注意一點,由于此方法是將JSON字符串轉換成對象,所以你的字符串必須符合JSON格式,即鍵值都必須使用雙引號包裹:

let a = '["1","2"]';
let b = "['1','2']";
console.log(JSON.parse(a));// Array [1,2]
console.log(JSON.parse(b));// 報錯

二、JSON.stringify()妙用

1.判斷數組是否包含某對象,或者判斷對象是否相等。

//判斷數組是否包含某對象
let data = [
  {name:'掘金'},
  {name:'css學習'},
  {name:'js學習'},
  ],
  val = {name:'掘金'};
JSON.stringify(data).indexOf(JSON.stringify(val)) !== -1; // true

//判斷兩數組/對象是否相等
let a = [1,2,3],
  b = [1,2,3];
JSON.stringify(a) === JSON.stringify(b);//true

2.讓localStorage/sessionStorage可以存儲對象。

localStorage/sessionStorage默認只能存儲字符串,而實際開發(fā)中,我們往往需要存儲的數據多為對象類型,那么這里我們就可以在存儲時利用json.stringify()將對象轉為字符串,而在取緩存時,只需配合json.parse()轉回對象即可。

//存
function setLocalStorage(key,val){
  window.localStorage.setItem(key,JSON.stringify(val));
};
//取
function getLocalStorage(key){
  let val = JSON.parse(window.localStorage.getItem(key));
 window.localStorage.removeItem(key)
  return val;
};
//測試
let data = [
  {name:'掘金'},
  {name:'css學習'},
  {name:'js學習'},
  ];
setLocalStorage('STORAGEDATE',data);
let a = getLocalStorage('STORAGEDATE'); 

3.實現對象深拷貝

實際開發(fā)中,如果怕影響原數據,我們常深拷貝出一份數據做任意操作,其實使用JSON.stringify()與JSON.parse()來實現深拷貝是很不錯的選擇。

//深拷貝
function deepClone(data) {
  let _data = JSON.stringify(data),
    dataClone = JSON.parse(_data);
  return dataClone;
};
//測試
let arr = [1,2,3],
  _arr = deepClone(arr);
arr[0] = 2;
console.log(arr,_arr)//[2,2,3] [1,2,3]

到此這篇關于json.stringify()與json.parse()的區(qū)別以及用處的文章就介紹到這了,更多相關json.stringify()與json.parse()內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • JSON 客戶端和服務器端的格式轉換

    JSON 客戶端和服務器端的格式轉換

    JSON是JavaScript Object Notation的縮寫。JSON是個輕量級的用于服務器端和客戶端交換數據的數據格式。它經常會用在ajax應用上,是因為它是基于ajax對象的格式定義出來的。
    2009-08-08
  • json跟xml的對比分析

    json跟xml的對比分析

    JSON和XML的可讀性可謂不相上下,一邊是建議的語法,一邊是規(guī)范的標簽形式,很難分出勝負。
    2008-06-06
  • JSON.parse 數據不完整的解決方法

    JSON.parse 數據不完整的解決方法

    本文主要介紹了JSON.parse 數據不完整的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • 任意Json轉成無序列表的方法示例

    任意Json轉成無序列表的方法示例

    這篇文章主要給大家介紹了任意Json如何轉成無序列表,文中給出了詳細的示例代碼,相信對大家的理解和學習具有一定的參考借鑒價值,有需要的朋友們下面跟著小編來一起學習學習吧。
    2016-12-12
  • IE8 原生JSON支持

    IE8 原生JSON支持

    你可能已經從這篇文章的標題中猜到了,Internet Explorer 8(目前是Beta2)提供了原生JSON的解析和序列化。
    2009-04-04
  • 改進版通過Json對象實現深復制的方法

    改進版通過Json對象實現深復制的方法

    改進版通過Json對象實現深復制的方法,需要的朋友可以參考下
    2012-10-10
  • json的定義、標準格式及json字符串檢驗

    json的定義、標準格式及json字符串檢驗

    今天分享和總結一些json的基本定義、格式、字符串的格式,以及在做測試的時候使用json時做一些簡單的校驗
    2014-05-05
  • XML的代替者----JSON

    XML的代替者----JSON

    XML的代替者----JSON...
    2007-07-07
  • 解讀JSON的三種格式

    解讀JSON的三種格式

    這篇文章主要介紹了解讀JSON的三種格式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 使用Json比用string返回數據更友好,也更面向對象一些

    使用Json比用string返回數據更友好,也更面向對象一些

    在面向對象的程序來講,它的可能性,編寫代碼不易出錯率也很重要,所以,建議在返回復雜字條符時,使用C#提供的Json,而不需要自己去拼寫JS返回的Json格式。
    2011-09-09

最新評論