博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
你不知道的JSON.stringify()妙用
阅读量:6264 次
发布时间:2019-06-22

本文共 1804 字,大约阅读时间需要 6 分钟。

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 参考

转载地址:http://vjkpa.baihongyu.com/

你可能感兴趣的文章
好的用户界面-界面设计的一些技巧
查看>>
全端开发必备!10个最好的 Node.js MVC 框架
查看>>
初始Knockout
查看>>
HADOOP 2.6 INSTALLING ON UBUNTU 14.04 (hadoop 2.6 部署到ubuntu 14.04上面)
查看>>
OSSIM架构与组成综述
查看>>
用ASP.NET Core 2.0 建立规范的 REST API -- 预备知识 (2) + 准备项目
查看>>
数据分析:基于Python的自定义文件格式转换系统
查看>>
如何重置Sitecore CMS中的管理员密码
查看>>
[SilverLight]DataGrid实现批量输入(like Excel)(补充)
查看>>
PHP 杂谈《重构-改善既有代码的设计》之三 重新组织数据
查看>>
NSBundle介绍
查看>>
POJ1811_Prime Test【Miller Rabin素数測试】【Pollar Rho整数分解】
查看>>
ConnectString中enlist设置的含义
查看>>
潜移默化学会WPF(企业经验篇)--Log4Net(二)
查看>>
轻量级面向SQL的MySQL开源监控工具
查看>>
ubuntu 卸载 程序软件
查看>>
iOS 6,5支持 portrait,landscape (横竖屏的处理)
查看>>
FineUI v3.2.2发布了!(7 天后再出新版,给不给力?)
查看>>
Quartz在Spring中动态设置cronExpression (spring设置动态定时任务)------转帖
查看>>
vb webbrower 相对坐标
查看>>