JSON.parse()JSON.parse():接受一个 JSON 字符串并将其转换成一个js对象语法:JSON.parse(string, [callback])参数string:是一个json格式的字符串参数callback:可选参数,是一个回调函数1. 基本使用parse解析注意点://parse参数的两个必要条件:1.参数必须严格是json格式的字符串(也就说属性名必须带双引号)2.参数必须使用单引号包裹起来,内部的属性名使用双引号包裹(总体就是单引号套双引号的方式)// 1. 正确使用:varstr='{“name”:”小明”,”age”:18}’varobj=JSON.parse(str)typeofobj//Objectobj//obj:{name:”小明”,age:18}// 2. 可以递归解析:varstr='{“status”:”1″,”data”:[{“tags”:[{“name”:”春季”}]}]}’varobj=JSON.parse(str)typeofobj//Objectobj.data[0].tags[0].name//”春季”//obj={//status:”1″,//data:[{//tags:[{//name:”春季”,//}]//}]//}//错误示范1:属性名没有使用双引号varstr='{name:”小明”,age:18}’varobj=JSON.parse(str)//报错//错误示范2:字符串参数没有使用单引号包裹varstr=”{“name”:”小明”,”age”:18}”varobj=JSON.parse(str)//报错2. 高级用法JSON.parse(): 第二个参数是可选参数,是一个回调函数,它可以在返回之前转换对象值//将返回对象的属性值大写:constuser={name:’John’,email:’john@awesome.com’,plan:’Pro’};//constuserStr=JSON.stringify(user);constnewUserStr=JSON.parse(userStr,(key,value)=>{if(typeofvalue===’string’){returnvalue.toUpperCase();}returnvalue;});console.log(newUserStr);//{name:”JOHN”,email:”JOHN@AWESOME.COM”,plan:”PRO”}JSON.stringify()JSON.stringify():接受一个 js 对象并将其转换为一个 JSON 字符串语法:JSON.stringify(obj, [replacer], [space])obj参数:是一个js对象replacer:可选参数,如果是函数类型,则表示过滤作用;如果是数组,则出现在数组中的项被返回,数组相当于白名单。space:可选参数,传入间隔符为了增强可读性1. 基本使用varobj={status:1,data:[{id:100391,tags:[{name:”春季”}]}]}varjsonStr=JSON.stringify(obj)//jsonStr:'{“status”:”1″,”data”:[{“id”:100391,”tags”:[{“name”:”春季”}]}]}’varobj1=JSON.parse(jsonStr)//obj1:{status:1,data:[{id:100391,tags:[{name:”春季”}]}]}2. 高级用法//示例1:当replacer是函数时:对user的每一项执行replacer函数,replacer函数返回undefined的项,则不放入stringify()的返回结果中。//replacer相当于数组的filter方法letuser={id:229,name:’John’,email:’john@awesome.com’};functionreplacer(key,value){if(key===’name’){returnundefined;}returnvalue;}letres=JSON.stringify(user,replacer);console.log(res)//{“id”:229,”email”:”john@awesome.com”}//示例2:当replacer为数组时:如果user中的某项出现在replacer数组中则返回user的这一项//replacer数组相当于白名单letuser={id:229,name:’John’,email:’john@awesome.com’};letreplacer=[‘name’];letres=JSON.stringify(user,replacer);console.log(res)//{“name”:”John”}//示例3:间隔符增强可读性constuser={name:’John’,email:’john@awesome.com’,plan:’Pro’};constuserStr=JSON.stringify(user,null,’===’);//”{//===”name”:”John”,//===”email”:”john@awesome.com”,//===”plan”:”Pro”//}”用JSON.stringify 来格式化对象varcensor=function(key,value){if(typeof(value)==’function’){returnFunction.prototype.toString.call(value)}returnvalue;}varfoo={bar:”1″,baz:3,o:{name:’xiaoli’,age:21,info:{sex:’男’,getSex:function(){return’sex’;}}}};console.log(JSON.stringify(foo,censor,4))//实际返回的字符串(备注是json字符串):{“bar”:”1″,”baz”:3,”o”:{“name”:”xiaoli”,”age”:21,”info”:{“sex”:”男”,”getSex”:”function(){return’sex’;}”}}}
js json合并覆盖(js把json字符串转成json数组)
编辑:众学网
点赞(0)
收藏(0)
相关推荐
公众号排版技巧格式主要包含哪些(编辑排版技巧解读)
无论是台式电脑还是笔记本电脑,我们都需要使用文字。年轻人通常不关心字体大小。如果老年人想使用电脑,字体大小是一个新问题。很多时候,12号字体长时间看下去,总会让人感到视觉疲劳。许多老年人的视力不是很好。即使是15号字体也会让你看起来很累。接下来,让我们学习如何调整电脑字体的大小!...
编辑:众学网发布时间:2022-08-22 13:45:15韩都衣舍的商业模式与逻辑(详解韩都衣舍内部操作)
谈及知名的快时尚服装品牌,很多人脑海中会蹦出ZARA、H&M等一连串耳熟能详的名字。然而在线上王国,独领风骚的非韩都衣舍莫属。2014年,韩都衣舍一举夺得天猫女装“双十一”、“双十二”以及全年女装交易额的“三冠王”。它是怎么做到的?...
编辑:众学网发布时间:2022-05-10 06:21:26iphone5s参数配置(iphone配置参数详情)
北京时间3月22号,苹果发布了2016版的iPhone 5s(SE),作为一台定位“小屏旗舰的产品”,iPhone SE在配置上确实采用了与6s相同的A9处理器 2GB RAM,而在定价方面,16GB售价约为3288元,而64GB售价为4088元,成为史上最便宜的iPhone。可以预见的是,iPhone SE会取得相当不错的销售成绩。但随着安卓机型的硬件配置升级迭代、系统的完善,新技术像曲面屏的加入,快充方案的普及使用等等。这种百花齐...
编辑:众学网发布时间:2022-06-11 15:21:07手持风扇什么牌子好(推荐一款颜值高风力大的手持风扇)
立夏后,天气会越来越热。每年夏天,恨不得24小时待在空调房,可现实是:不论天气再热,我们还是要出门为生活、工作、学习奔波。每当那时就会想:要是有特异功能,随时随地自带一股凉风就好了···...
编辑:众学网发布时间:2022-06-30 10:16:42