JavaScript中JSON对象介绍及使用场景在我们的工作中,经常会遇到字符串和对象的处理,尤其是它们之间的相互转换。最常见的大概就是今天要说的JSON对象中包含的JSON.stringfy()和JSON.parse()这两个方法。1.JSON.stringfy()JSON.stringify(value[,replacer][,space])参数说明:value:必填,要转换的JavaScript值(通常是对象或数组)。替代品:可选。用于转换结果的函数或数组。如果replacer是一个函数,JSON.stringify将调用该函数,为每个成员传入键和值。使用返回值而不是原始值。如果此函数返回undefined,则该成员被排除在外。根对象的键是一个空字符串:“”。如果replacer是数组,则只转换数组中有键值的成员。成员的转换顺序与键在数组中的顺序相同。space:可选,文本缩进,添加空格和换行符,如果space是数字,则返回值文本每一级缩进指定的空格数,如果space大于10,则文本缩进10个空格.空格也可以使用非数字,如:\t。示例vardata=[{name:"程咬金",sex:"1",age:26},{name:"程才",sex:"0",age:20}];varstr_json=JSON.stringify(数据,["姓名","性别"],3);console.log(str_json);varstr_json2=JSON.stringify(data,function(key,value){if(key=='sex'){return["female",'male'][value];}控制台。log('value',value)返回值;});console.log(str_json2);第三个一般不传,传了就相当于进行了换行操作,对应的数组代表缩进数。当然第二个参数一般是不传的。.2.JSON.parse()JSON.parse(text[,reviver])返回指定值对应的JSON字符串。可以使用附加参数只控制某些属性,或者自定义方法来替换某些键对应的属性示例constjson='{"result":true,"count":42}';constobj=JSON.parse(json);控制台日志(obj.count);这里要特别注意单引号和双引号的使用,尤其是前后端交互的时候,他中间传一个全是单引号的字符串,你会发现这个东西不能用?JSON.parse('{"p":5}',function(k,v){if(k==='')returnv;//如果到达顶层,直接返回属性值,returnv*2;//否则,将属性的值加倍。});//{p:10}JSON.parse('{"1":1,"2":2,"3":{"4":4,"5":{"6":6}}}',function(k,v){console.log(k);//输出当前属性名,这样遍历顺序是从里到外,//最后一个属性名会是一个空字符串returnv;//返回原始属性值,相当于不传递reviver参数。});如果用到场景,回想一下最近写的代码,前端经常用到的地方是在浏览器的存储中保存和检索数据。
