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数组)
相关推荐
看书全免费软件哪个好无广告(最受大众喜爱的9款看书app)
更别说再网页上找书看,澳门皇家赌场还有众多莫名其妙的广告绝对让你大饱眼福(doge)...
编辑:众学网发布时间:2022-05-19 22:11:05m2 nvme接口定义(m2接口sata和nvme区别)
在Intel 9系芯片组发布时,一部分小伙伴还在吐槽这一代芯片组没有大的诚意,最大的更新就是SATA-E接口和M.2插槽。就当时的情况来讲,SATA-E接口还没有太多实际的产品,但是M.2接口的相对就丰富不少,实用价值也更大。如今很多笔记本或主板都配备了M.2接口,那么M.2接口更多具体的技术和规格细节大家都清楚吗?...
编辑:众学网发布时间:2022-08-25 17:23:39u盘文件恢复软件哪个最好用(u盘0字节修复方法)
当你相机拍完照或者从别人那拷贝了数据,准备在自己电脑上整理的时候,咣当一下,一个大大地红色感叹号! 【SD卡需要格式化后才能打开】…当时我就懵了,这可是我拍了一下午的照片,别人还等着我手上照片修图和发推送呢…阿西,我就马不停蹄地百度SD卡修复方法了,最后通过一款软件成功修复了,找回了我滴照片。给大家分享下相关方法和软件,以备不时之需!...
编辑:众学网发布时间:2022-07-11 11:19:21主机启动不了灯也不亮怎么回事(电脑不能启动电源风扇解决方法)
电脑使用多了故障也越来越多,常常电脑开不了机显示器显示黑屏的时候很多不懂电脑的人以为电脑硬件坏了,其实不是所以的电脑无法开机问题都是电脑硬件坏了,有可能是因为以下几个问题导致电脑主机电源灯无法使用,赶紧一起来看看吧。...
编辑:众学网发布时间:2022-06-26 17:46:09铂金和黄金的区别哪个保值(k金和铂金哪个适合长期佩戴)
前几年,钻石等于爱情,铺天盖地的广告、便捷的购买途径、周围同龄人的展示……这一切都让女人觉得,只要是结婚,那一定要拥有一颗钻石!...
编辑:众学网发布时间:2022-04-15 08:37:12c语言下载软件哪个好(c语言下载软件推荐)
C语言编译软件适于编写系统软件,是学习编程的同学们的必备软件。c 语言一种非常强大的计算机语言,应用非常广泛,不仅仅是在软件开发上,而且各类科研都会用到c语言。常用的c语言编程软件像Visual Studio,MinGW,TurboC,Intel C Compiler等,那么c语言编程软件哪个最好用呢?C语言入们学习的小编,精心整理提供最好用的c语言编程软件下载,下面这些软件不乏大名鼎鼎和广受好评的c语 言编程软件,需要的同学可做参...
编辑:众学网发布时间:2022-06-21 02:14:10好用的画图软件推荐(手机上适合画画的软件排名)
作为一个兴趣广泛的人,小软我最近又迷上了指绘,就是在手机上画画啦。不得不说,在手机上画画好处多多,首先就节省了买各种绘画工具的开销,然后也十分方便,随时随地,想画就画,最重要的是反正也是玩手机,还不如干点正经事。通过这段时间的探索,小软我发现以下几款绘画APP都十分好用,那必须得马上和小伙伴们分享一下呀,安排!...
编辑:众学网发布时间:2022-05-30 23:10:21