日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

原生js实现JSON.parse()和JSON.stringify()

發布時間:2024/4/17 javascript 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 原生js实现JSON.parse()和JSON.stringify() 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

- 首先JSON.stringify()是將js對象轉換為JSON形式

實現思路:

通過遞歸調用,來實現對轉換對象Object的深層value進行遍歷,利用array的join實現最終字符串拼接

function myJsonStringify(obj) {let type = typeof obj;if (type !== "object" || type === null) {if (/string|undefined|function/.test(type)) {obj = '"' + obj + '"';}return String(obj);} else {let json = [],arr = (obj && obj.constructor === Array);for (let k in obj) {let v = obj[k];let type = typeof v;if (/string|undefined|function/.test(type)) {v = '"' + v + '"';} else if (type === "object") {v = myJsonStringify(v);}json.push((arr ? "" : '"' + k + '":') + String(v));}return (arr ? "[" : "{") + String(json) + (arr ? "]" : "}")}}

一個較為完整版的實現:

(function(NS){ var simpleTypes=["number","boolean","undefined","string","function"] function stringify(object){var type=typeof objectif(indexOf(simpleTypes,type)>-1){return parseSimpleObject(object);}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){if(itemType!="undefined"){resArr.push(parseSimpleObject(object[i]));}else{resArr.push('null')}}else{resArr.push(stringify(object[i]))}}return "["+resArr.join(",")+ "]"}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){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("\"","\\\"") + "\""}if(type=="number"||type=="boolean"){return object.toString()}if(type=="undefined"){return "undefined"}return "\"" +object.toString().replace("\"","\\\"") +"\"" } function indexOf(arr,val){for(var i=0;i<arr.length;i++){if(arr[i]===val){return i;}}return -1 } 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)<Oxff){encodeRes+=res[i]}else{encodeRes+="\\u"+res.charCodeAt(i).toString(16);}}res=encodeRes}return res; } })(window);

JSON.parse()是將JSON對象轉換為js對象

實現方式:(2種)

eval()

var json='{"a":"1","b":2}'var obj=eval("("+json+")");

直接調用eval,會產生xss漏洞。

利用new Function()

第一種eval的方法,相當于無腦把JSON字符串塞進去,eval和Function都有著動態編譯js代碼的作用

var func=new Function(arg1,arg2,...,functionBody) var jsonStr='{"age":20,"name":"jack"}' var json=(new Function('return'+jsonStr))()

?

轉載于:https://www.cnblogs.com/yuan233/p/10986714.html

總結

以上是生活随笔為你收集整理的原生js实现JSON.parse()和JSON.stringify()的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 情侣av | 亚洲成人资源 | 久久亚洲色图 | 黑人一区二区三区 | 天堂亚洲精品 | 岳狂躁岳丰满少妇大叫 | 黑人操亚洲人 | 一级片中文 | 午夜在线视频免费 | 色婷五月天 | 亚洲第一页夜 | 国产视频在线观看一区 | 精品乱码久久久久久中文字幕 | 精品久久五月天 | av字幕在线 | 久草视频在线资源 | mm131美女视频 | 国产成人在线看 | 在线观看日韩国产 | 日本美女日批视频 | 91精品人妻一区二区 | 精品一区二区在线播放 | 99久久久无码国产精品性青椒 | 五月涩| 国产色诱视频 | 欧美理论视频 | 精品国产一区二区三区久久 | jizz教师 | 91成人综合 | 日本一区二区黄色 | 欧美成人aaaaⅴ片在线看 | 国产精品久久777777毛茸茸 | 麻豆欧美 | 亚洲无码精品一区二区三区 | 一眉道姑 | 18视频在线观看网站 | 国产午夜亚洲精品午夜鲁丝片 | 久久久久成人网站 | 黑人巨大精品欧美一区二区蜜桃 | 国产又黄又粗又猛又爽的视频 | 污视频91 | 国产午夜精品在线 | 超碰人人干人人 | 综合久久久久久 | xxx国产在线观看 | 国产丝袜高跟 | 成人免费视频网址 | 国产一二三区在线视频 | 欧美8888 | 91欧美一区二区三区 | 日韩国产中文字幕 | 美女网站污 | 欧美亚洲日本 | 特级a毛片 | 岛国av噜噜噜久久久狠狠av | 日韩在线观看视频一区二区三区 | 国产精品羞羞答答在线观看 | 欧美高清在线视频 | 最近中文字幕无免费 | 久久久国产成人一区二区三区 | 色就是色av | 久久精品视频免费播放 | 在线播放国产一区 | 亚洲av女人18毛片水真多 | 久操久操 | 亚洲AV成人无码电影在线观看 | 天堂av日韩| 性五月天 | 精品久久久久久中文字幕人妻最新 | 一区二区视频网站 | 一本久道综合色婷婷五月 | 懂色视频在线观看 | 国产91绿帽单男绿奴 | 精品无人国产偷自产在线 | 国产每日更新 | 九色视频自拍 | 日本色www| 精品不卡一区二区 | 一女被多男玩喷潮视频 | 天天干夜夜玩 | 亚洲精品免费在线观看视频 | 久久这里只有精品6 | 国产一区久久 | 国产主播一区 | 日韩系列在线 | 国产伦精品一区二区三区视频我 | 免费观看毛片网站 | 中文字幕一区二区人妻在线不卡 | 午夜免费福利在线观看 | 国产精品无码影院 | 奇米成人影视 | 亚洲一区在线看 | 黄色片视频播放 | 亚洲中文字幕无码av | 日韩欧美精品中文字幕 | av片在线观看 | 亚洲无码乱码精品国产 | 国产猛男猛女超爽免费视频 | 欧美性猛交xxxx乱 |