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)
相关推荐
小米夜灯2蓝牙版怎么设置(详解小米夜灯2蓝牙版设置方法)
米粉改造家,打造你的智能生活家。本期#米粉改造家#,我们请到了嘉宾曹翊炀,看他如何用米家夜灯2蓝牙版,改造出一间智能宿舍。...
编辑:众学网发布时间:2022-07-03 04:05:25电脑网络显示感叹号怎么解决(wifi出现感叹号最佳解决方法)
在我们使用无线网络上网的时候,由于某些原因无法继续上网,并且桌面右下角的网络连接图标上还显示了一个黄色的感叹号,这是怎么回事呢?今天教大家如何快速解决这个问题。...
编辑:众学网发布时间:2022-07-03 13:06:24今日头条信息流广告怎么收费(分享这3种计费方法)
头条信息流广告,是在快手app中发现频道视频信息流中所展示的视频广告,位置在发现页每次刷新的第5或者第6个视频位中,是快手核心广告资源!因为快手视频封面尺寸大小不一,广告展示时后台会根据广告版面来调整广告相应的展现位次,所以具体展示位置稍微会有小小波动。...
编辑:众学网发布时间:2022-06-21 04:40:45计算机软件著作权申请费用(软件著作权费用明细)
软件著作权主要是针对软件产品进行保护,尤其是有软件系统或者是APP的网络科技公司,在产品开发完成之后,都是申请软件著作权,今天就来说说深圳地区申请软件著作权需要多少钱?...
编辑:众学网发布时间:2022-06-24 20:31:30怎么能大量粉碎文件(怎么强力粉碎电脑上的文件)
怎么能大量粉碎文件,如何彻底粉碎电脑文件,电脑粉碎文件的软件,怎么强力粉碎电脑上的文件,粉碎不了的文件怎么删,粉碎的文件可以找回吗,文件粉碎了还能恢复吗,彻底粉碎文件的软件,被360粉碎的文件怎么恢复...
编辑:众学网发布时间:2022-04-25 16:00:30宁夏是哪个省银川市(银川宁东属于哪个区)
宁夏是哪个省银川市,宁夏属于什么地区,青海省会,银川市是哪个省的,甘肃省会是哪个城市,宁夏穷还是甘肃穷,宁夏银川是哪个省的城市,宁夏银川是几线城市?,宁夏银川属于哪个省份,宁夏地图,中国银川在哪个省份...
编辑:众学网发布时间:2022-04-20 22:36:16