[S3-E432]你不知道的JSON.stringify()妙用
来源:互联网 发布:云虚拟主机需要域名吗 编辑:程序博客网 时间:2024/05/29 06:59
1 语法
JSON.stringify(value[, replacer[, space]])
一般用法:
var user = {name: 'andy', isDead: false, age: 11, addr: 'shanghai'};
JSON.stringify(user);
"{"name":"andy","isDead":false,"age":11,"addr":"shanghai"}"
2 扩展用法
2.1 replacer
replacer可以是函数或者是数组。
功能1: 改变属性值
将isDead属性的值翻译成0或1,0对应false,1对应true
var user = {name: 'andy', isDead: false, age: 11, addr: 'shanghai'};
JSON.stringify(user, function(key, value){
if(key === 'isDead'){
return value === true ? 1 : 0;
}
return value;
});
"{"name":"andy","isDead":0,"age":11,"addr":"shanghai"}"
功能2:删除某个属性
将isDead属性删除,如果replacer的返回值是undefined,那么该属性会被删除。
var user = {name: 'andy', isDead: false, age: 11, addr: 'shanghai'};
JSON.stringify(user, function(key, value){
if(key === 'isDead'){
return undefined;
}
return value;
});
"{"name":"andy","age":11,"addr":"shanghai"}"
功能3: 通过数组过滤某些属性
只需要name属性和addr属性,其他不要。
var user = {name: 'andy', isDead: false, age: 11, addr: 'shanghai'};
JSON.stringify(user, ['name', 'addr']);
"{"name":"andy","addr":"shanghai"}"
2.2 space
space可以是数字或者是字符串, 如果是数字则表示属性名前加上空格符号的数量,如果是字符串,则直接在属性名前加上该字符串。
功能1: 给输出属性前加上n个空格
var user = {name: 'andy', isDead: false, age: 11, addr: 'shanghai'};
JSON.stringify(user, null, 4);
"{
"name": "andy",
"isDead": false,
"age": 11,
"addr": "shanghai"
}"
功能2: tab格式化输出
var user = {name: 'andy', isDead: false, age: 11, addr: 'shanghai'};
JSON.stringify(user, null, '\t');
"{
"name": "andy",
"isDead": false,
"age": 11,
"addr": "shanghai"
}"
功能3: 搞笑
JSON.stringify(user, null, 'good');
"{
good"name": "andy",
good"isDead": false,
good"age": 11,
good"addr": "shanghai"
}"
2.3 深拷贝
var user = {name: 'andy', isDead: false, age: 11, addr: 'shanghai'};
var temp = JSON.stringify(user);
var user2 = JSON.parse(temp);
3 其他
JSON.parse() 其实也是支持第二个参数的。功能类似于JSON.stringify的第二个参数的功能。
4 参考
MDN JSON.stringify() (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify)
转自:https://segmentfault.com/a/1190000011239168
作者:香吉士
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
更多文章点击 目录 查看(或在导航菜单中查看)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
==========阅读原文==========
- [S3-E432]你不知道的JSON.stringify()妙用
- 你所不知道的JSON.stringify
- 你所不知道list的妙用
- [S3-E422]你不知道的CSS(二)
- 淘米水的妙用,你不知道的养生秘密
- andtoid stuido 你不知道的风格style的妙用
- printf格式控制(你所不知道的printf妙用)
- printf格式控制(你所不知道的printf妙用)
- 你所不知道的JSON
- 你不知道的JSON的高效率用法
- 【转】printf格式控制(你所不知道的printf妙用)
- [ 前端 ] 关于json,你可能不知道的东西.
- 你真的会用JSON.stringify么?
- JSON的方法-stringify()
- JSON.stringify的使用
- JSON.stringify()的兼容性
- Json.stringify()的用法
- qs.stringify() 和JSON.stringify()的区别
- redis配置详解
- 玩转Ambari之二----基于ubuntu的源码编译和安装
- http-简介
- android notification通过intent传参,参数不更新
- three.js加载obj模型
- [S3-E432]你不知道的JSON.stringify()妙用
- 中国移动互联网的未来发展趋势
- oracle 数据库 在centos7 上静默安装
- 1006. 换个格式输出整数
- Mysql按日期分表
- java编程实现将两个有序链表LA,LB合并成新的LA
- Druid Monitor
- Redis常见配置redis.conf
- Logger日志级别说明及设置方法