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)
相关推荐
win10默认网关不可用怎么办(默认网关正确设置流程)
计算机网络问题涉及方方面面,各种软硬件问题都可能会导致上网不稳定、掉线的故障。下文就针对性适用于网络诊断结果为“默认网关不可用”的情形,其他情形可能不适用本方案。阅读下文了解Win10网络诊断后提示“默认网关不可用”的解决方法。...
编辑:众学网发布时间:2022-08-05 01:34:24黑寡妇蜘蛛机械键盘怎么样(事实证明这是一款手感超好功能独特的机械键盘)
5月25日,雷蛇发布了65%配列的机械键盘——黑寡妇蜘蛛V3迷你无线版机械键盘。雷蛇对市场的嗅觉一向敏锐,目前开始进入大众市场的小配列键盘产品潮流,它也没有落下,发布了这款定位旗舰的键盘产品,有线无线三模连接、CHROMA灯光、雷蛇自主轴体等自家旗舰键盘上面的特性均被设置到了这款黑寡妇蜘蛛V3迷你无线版机械键盘上。...
编辑:众学网发布时间:2022-05-11 09:28:38app线下推广方式有哪些(常见的线上线下app推广)
线下推广不仅能够提升网站的直接流量,更是企业品牌的一种宣传方式。线下推广方式有哪些?本文将为大家介绍 11 中实用的线下推广方式。...
编辑:众学网发布时间:2022-07-17 18:50:52区块链产品经理做什么(简介这5大工作职责)
很多人并不知道产品经理是做什么的。甚至有些已经入行的新同志也以为产品经理就是了解需求、调研竞品、画画原型。...
编辑:众学网发布时间:2022-06-27 10:33:52华为手机怎么设置闹钟提醒(手机设置闹钟铃声自定义步骤)
使用手机设置闹钟后,可以提醒我们起床、吃药等,帮助我们更有规律的生活。本期学习主题:...
编辑:众学网发布时间:2022-06-11 18:16:23