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数组)
相关推荐
魅族pro6s参数配置(超详细介绍魅族pro6s手机)
随着发布日期临近,近日有关魅族新旗舰魅族16s的爆料越来越多。前不久,该机已经正式入网(型号为M971Q),外观已无悬念。日前,又有一张疑似魅族16S的配置清单曝光,展示了新机的部分配置信息。...
编辑:众学网发布时间:2022-05-19 18:45:55调用征管系统服务失败,错误代码103(写入征管系统失败是什么原因)
调用征管系统服务失败,错误代码103,写入征管系统失败是什么原因,业务处理失败调用系统服务出错,核心征管处理失败什么意思,错误代码1034怎么解决,打印失败服务代码103,960011115因错误网络URL,调用征管失败的原因...
编辑:众学网发布时间:2022-04-17 16:45:28现在闪充手机有哪些(oppo支持闪充的机型)
6月5日晚,OPPO Reno4系列正式发布,高颜值、影像、5G和65W超级闪充都是Reno4系列的亮点。...
编辑:众学网发布时间:2022-05-22 18:51:27淘宝论坛推广技巧有哪些(分享推广3大技巧)
????重点导读 曾经有一段时间,用贴吧做淘宝贴来操作淘宝客效果劲爆的方法备受打击。而如今,这一段时间无意在各个贴吧走走的时候,发现淘宝贴重现江湖!欧耶,绝对是天大的好消息呢!...
编辑:众学网发布时间:2022-06-30 03:47:20qq特别关心查询是真是假(qq上400块4小时是真是假)
qq特别关心查询是真是假,怎么查qq谁特别关心你,qq空间显示特别关心是真的吗,qq特别关心在线查询器,qq上门怎么区分是真是假,qq空间特别关心是真的吗,qq约人的是真的假的,qq特别关心查询入口,qq上400块4小时是真是假...
编辑:众学网发布时间:2022-04-27 12:08:16kk录屏使用教程(不收费的录屏软件介绍)
目前网络上又很多视频捕捉软件,他们的功能上也又很大差别,目前主要体现在视频捕捉的同时是否同时捕捉音频,以及捕捉后的处理加工,视频捕捉软件功能很多,很大一部分是被用在了教程上,制作一个好的教程不仅要好的内容以及讲述,更重要的是视频也要很简明,效果好。...
编辑:众学网发布时间:2022-08-25 16:51:16硬盘碎片整理程序(win10整理磁盘碎片的步骤)
UltimateDefrag 6 中文版是由 DiskTrix 公司开发的一款独家支持对 NTFS 系统元文件进行碎片整理和自定义放置的终极磁盘碎片整理工具,完全解决了与碎片和文件放置相关的硬盘性能的碎片整理问题。UltimateDefrag 6 汉化版兼容六种磁盘碎片整理方式,至于 UltimateDefrag 哪个方式好需要根据实际情况来进行选择。...
编辑:众学网发布时间:2022-05-10 09:10:45oppo手机恢复出厂设置会怎么样(退出oppo账号还能定位追踪)
oppo手机恢复出厂设置会怎么样,请问oppo手机怎样恢复出厂设置,oppo手机恢复出厂设置在哪里找到,oppo手机有恢复出厂设置吗,oppo手机强制恢复出厂设置,oppo手机死机重启不了,oppoa56恢复出厂设置怎么弄...
编辑:众学网发布时间:2022-04-21 23:37:55