麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

JS實(shí)現(xiàn)JSON.stringify的實(shí)例代碼講解

2019-11-19 17:42:06
字體:
供稿:網(wǎng)友

 JSON.stringify是瀏覽器高版本帶的一個將JS的Objtect對象轉(zhuǎn)換為JSON字符串的一個方法,不過再IE6下面,并不存在JSON這一對象,因此,用到此方法時(shí),需要寫一套兼容性的代碼。 JSON.stringify的一些規(guī)則以及注意點(diǎn):當(dāng)對象為數(shù)字,null,boolean的時(shí)候,直接轉(zhuǎn)換為相應(yīng)的字符串就可以了。 但是string,function,undefined,object,array等,需要特殊處理。

1.undefined,該類型使用JSON.stringify處理的時(shí)候,如果對象就是undefined,將會輸出"undefined",如果對象是數(shù)組的元素,那么將會變成null,比如:[undefined],stringify之后變成了"[null]";如果該對象是object的元素,那么該屬性將當(dāng)作不存在,不輸出,比如{a:1,b:undefined},stringify之后是"{/"a/":1},B屬性直接拋棄。

2.字符串在拼接的時(shí)候需要把內(nèi)部的雙引號處理掉

代碼如下

/**  * JSON stringify的實(shí)現(xiàn)  * @author norkts<[email protected]>  * @version 1.0 2015-11-24 15:11 實(shí)現(xiàn)了基本功能  * @version 1.1 2015-11-24 15:19 norkts 增加了JSON.stringify的兼用代碼實(shí)現(xiàn)  * @version 1.2 2015-11-24 15:49 norkts 修改數(shù)組indexOf在IE下不兼容的寫法,修改了undefined值的特殊處理  */ (function(NS){   //簡單類型  var simpleTypes = ["number", "boolean", "undefined", "string", "function"];    //JSON.stringify的主函數(shù)  function stringify(object){   var type = typeof object;      //如果是簡單類型,則直接返回簡單類型的結(jié)果   if(indexOf(simpleTypes, type) > -1){    return parseSimpleObject(object);   }    //數(shù)組對象的   if(object instanceof Array){    var len = object.length;    var resArr = [];    for(var i = 0; i < len; i++){     var itemType = typeof object[i];     if(indexOf(simpleTypes, itemType) > -1){       //undefined特殊處理,數(shù)組中變成null      if(itemType != "undefined"){       resArr.push(parseSimpleObject(object[i]));      }else{       resArr.push("null");      }           }else{      //遞歸處理JS數(shù)組中的復(fù)雜元素      resArr.push(stringify(object[i]));     }    }        return "[" + resArr.join(",") + "]";   }      //普通object對象   if(object instanceof Object){    if(object == null){     return "null";    }        var resArr = [];        for(var name in object){     var itemType = typeof object[name];     if(indexOf(simpleTypes, itemType) > -1){      //undefined特殊處理,object中不編碼      if(itemType != "undefined"){       resArr.push("/"" + name + "/":" + parseSimpleObject(object[name]));       }     }else{      resArr.push("/"" + name + "/":" + stringify(object[name]));     }    }        return "{" + resArr.join(",") + "}";   }  }    function parseSimpleObject(object){   var type = typeof object;   if(type == "string" || type == "function"){    return "/"" + object.toString().replace("/"", "http:///"") + "/"";   }      if(type == "number" || type == "boolean"){    return object.toString();   }      if(type == "undefined"){    return "undefined";   }      return "/"" + object.toString().replace("/"", "http:///"") + "/"";  }    function indexOf(arr, val){   for(var i = 0; i < arr.length; i++){    if(arr[i] === val){     return i;    }   }      return -1;  }    /**   * 將stringify做二次封裝   * @param object 要處理的對象   *   */  NS.stringify = function(object, isEncodeZh){   var res = stringify(object);   if(isEncodeZh){    var encodeRes = "";    for(var i = 0; i < res.length; i++){     if(res.charCodeAt(i) < 0xff){      encodeRes += res[i];     }else{      encodeRes += "http://u" + res.charCodeAt(i).toString(16);     }    }    res = encodeRes;   }      return res;  }; })(window); 

以上所述是小編給大家介紹的JS實(shí)現(xiàn)JSON.stringify的實(shí)例代碼講解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對武林網(wǎng)網(wǎng)站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 久久久精品视频国产 | 黄色成人短视频 | 欧洲精品久久久 | 欧美日韩中文字幕在线视频 | 成人一级视频在线观看 | 黄色片网站免费在线观看 | 99精品国产成人一区二区 | 免费在线国产 | 中文字幕在线观看91 | 亚洲3atv精品一区二区三区 | 久久精品亚洲精品国产欧美kt∨ | 视频一区二区久久 | 视频一区免费观看 | 亚洲精品久久久久久下一站 | 欧美成人高清视频 | 51国产偷自视频区视频小蝌蚪 | 国产四区 | 久久免费视频精品 | 久久国产经典 | 欧美一级黄色免费看 | 欧美激情在线播放 | 国产亚洲精彩视频 | 国色天香综合网 | 天天操天天骑 | 欧美一级视频免费看 | 久久蜜桃精品一区二区三区综合网 | 国产电影av在线 | 中国女警察一级毛片视频 | 黄色片网站免费在线观看 | 91av资源在线| 国产精品成人一区二区三区电影毛片 | 午夜精品久久久久久久久久久久久蜜桃 | 精品午夜影院 | 欧美成人黄色小视频 | 精品一区二区在线观看视频 | 欧美一区二区黄色 | 一级裸体视频 | 久久久久久久久国产精品 | 久久久久中精品中文字幕19 | 国产一区国产二区在线观看 | 一级毛片免费一级 |