JSON.parse和JSON.stringify总结
用Jquery用习惯了,老是用jQuery.parseJSON方法转化json对象。今天总结一下现代浏览器内置的Json处理方法,JSON.parse和JSON.stringify两个常用方法。IE8之前的就不考虑了。
必需。 一个有效的 JSON 字符串。
可选。 一个转换结果的函数。 将为对象的每个成员调用此函数。 如果成员包含嵌套对象,则先于父对象转换嵌套对象。 对于每个成员,会发生以下情况:
-
如果 reviver 返回一个有效值,则成员值将替换为转换后的值。
-
如果 reviver 返回它接收的相同值,则不修改成员值。
-
如果 reviver 返回undefined,则删除成员。(我在FF和chrome下试验的是返回undefined后,会删除成员,返回null,只会赋值为null)
一个对象或数组。
链接 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse
例子
var jsontext = '{"firstname":"Jesper","surname":"Aaberg","thirdname":"Mike"}';
var contact = JSON.parse(jsontext);
console.log(contact.surname + ", " + contact.firstname+","+contact.thirdname);
function aa(key,v){
if (key===""){
return v;
}else{
var a="";
if (key=="firstname"){
a = "My"+v;
return a;
}else if (key=="surname"){
return undefined;
}else{
return null;
}
}
}
var c=JSON.parse(jsontext,aa);
console.log(c);
结果
Aaberg, Jesper,Mike Object { firstname="MyJesper", thirdname=null}
2.JSON.stringify() 方法
作用 可以将任意的 JavaScript 值序列化成 JSON 字符串。
语法
JSON.stringify(value[, replacer [, space]])
参数
value
将要序列化成 JSON 字符串的值。
replacer 可选
如果该参数是一个函数,则在序列化过程中,被序列化的值的每个属性都会经过该函数的转换和处理;如果该参数是一个数组,则只有包含在这个数组中的属性名才会被序列化到最终的 JSON 字符串中。关于该参数更详细的解释和示例,请参考使用原生的 JSON 对象一文。
space 可选
指定缩进用的空白字符串,用于美化输出(pretty-print)。
例子
var b = {"firstname":"mike","lastname":"jackson"}; console.log(JSON.stringify(b)); console.log(JSON.stringify(b,null," ")); console.log(JSON.stringify(b,function(k,v){ if (k===""){ return v; } if (k=="firstname"){ return "My"+v; } })); console.log(JSON.stringify(b,function(k,v){ if (k===""){ return v; } if (k=="firstname"){ return "My"+v; } },"\t"));
结果
{"firstname":"mike","lastname":"jackson"} { "firstname": "mike", "lastname": "jackson" } {"firstname":"Mymike"} { "firstname": "Mymike" }这编辑器实在是太难用了。。。。。
上一篇: Java 8新增的日期、时间格式器
推荐阅读
-
【前端开发环境】前端使用GIT管理代码仓库需要掌握的几个必备技巧和知识点总结
-
MySQL索引类型总结和使用技巧以及注意事项_MySQL
-
CSS3阴影 box-shadow的使用和技巧总结_html/css_WEB-ITnose
-
PHP错误和异长常处理总结_php技巧
-
Java基础学习总结(129)——Arrays.asList得到的List进行add和remove等操作出现异常解析
-
深入c# 类和结构的区别总结详解
-
数据库索引(Oracle和Mysql)学习总结
-
找到整型阵列中最大值和最小值的几种方法总结
-
iOS10实现推送功能时的注意点和问题总结
-
数据库索引(Oracle和Mysql)学习总结