JSON.stringify()方法讲解


Posted in Javascript onJanuary 31, 2019

JSON.stringify()方法是什么呢?

我们在向服务器发送数据时一般是字符串。

我们可以使用 JSON.stringify() 方法将 JavaScript 对象转换为字符串。

语法

JSON.stringify(value[, replacer[, space]])

参数说明:

value:

  • 必需,一个有效的 JSON 对象。

replacer:

  • 可选。用于转换结果的函数或数组。
  • 如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值。使用返回值而不是原始值。如果此函数返回 undefined,则排除成员。根对象的键是一个空字符串:""。
  • 如果 replacer 是一个数组,则仅转换该数组中具有键值的成员。成员的转换顺序与键在数组中的顺序一样。当 value 参数也为数组时,将忽略 replacer 数组。

space:

  • 可选,文本添加缩进、空格和换行符,如果 space 是一个数字,则返回值文本在每个级别缩进指定数目的空格,如果 space 大于 10,则文本缩进 10 个空格。space 有可以使用非数字,如:\t。

JavaScript 对象转换

var obj = { "name":"runoob", "alexa":10000, "site":"www.runoob.com"};
var myJSON = JSON.stringify(obj);   JavaScript 对象转换为JSON对象
document.getElementById("demo").innerHTML = myJSON;
//JavaScript数组转换为JSON对象
var arr = [ "Google", "Runoob", "Taobao", "Facebook" ];
var myJSON = JSON.stringify(arr);
document.getElementById("demo").innerHTML = myJSON;

异常

解析数据

JSON 不能存储 Date 对象。

JSON.stringify() 会将所有日期转换为字符串。

<p id="demo"></p>
<script>
var obj = { "name":"Runoob", "initDate":new Date(), "site":"www.runoob.com"};
var myJSON = JSON.stringify(obj);
document.getElementById("demo").innerHTML = myJSON;
</script>

解析函数

JSON 不允许包含函数,JSON.stringify() 会删除 JavaScript 对象的函数,包括 key 和 value。

<p id="demo"></p>
<script>
var obj = { "name":"Runoob", "alexa":function () {return 10000;}, "site":"www.runoob.com"};
var myJSON = JSON.stringify(obj);
document.getElementById("demo").innerHTML = myJSON;
</script>

结果为

JSON.stringify 将删除对象中的函数

{"name":"Runoob","site":www.runoob.com}

我们可以在执行 JSON.stringify() 函数前将函数转换为字符串来避免以上问题的发生:

eg:<p id="demo"></p>
<script>
var obj = { "name":"Runoob", "alexa":function () {return 10000;}, "site":"www.runoob.com"};
obj.alexa = obj.alexa.toString();
var myJSON = JSON.stringify(obj);
document.getElementById("demo").innerHTML = myJSON;
</script>

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Javascript 相关文章推荐
用js实现多域名不同文件的调用方法
Jan 12 Javascript
写自已的js类库需要的核心代码
Jul 16 Javascript
js 判断checkbox是否选中的操作方法
Nov 09 Javascript
浏览器加载、渲染和解析过程黑箱简析
Nov 29 Javascript
javascript 禁用IE工具栏,导航栏等等实现代码
Apr 01 Javascript
Javascript前端UI框架Kit使用指南之Kitjs简介
Nov 28 Javascript
Bootstrap时间选择器datetimepicker和daterangepicker使用实例解析
Sep 17 Javascript
Next.js实现react服务器端渲染的方法示例
Jan 06 Javascript
jquery实现下载图片功能
Jul 18 jQuery
JavaScript JSON数据处理全集(小结)
Aug 15 Javascript
vue 实现路由跳转时更改页面title
Nov 05 Javascript
微信小程序实现音乐播放页面布局
Dec 11 Javascript
Vue实现远程获取路由与页面刷新导致404错误的解决
Jan 31 #Javascript
vue中的mvvm模式讲解
Jan 31 #Javascript
Vue和React组件之间的传值方式详解
Jan 31 #Javascript
使用Angular Cli如何创建Angular私有库详解
Jan 30 #Javascript
async/await优雅的错误处理方法总结
Jan 30 #Javascript
新年快乐! javascript实现超级炫酷的3D烟花特效
Jan 30 #Javascript
JavaScript之解构赋值的理解
Jan 30 #Javascript
You might like
对javascript和select部件的结合运用
2006/10/09 PHP
深入解析php之sphinx
2013/05/15 PHP
解析PHP跨站刷票的实现代码
2013/06/18 PHP
Centos下升级php5.2到php5.4全记录(编译安装)
2015/04/03 PHP
原来Jquery.load的方法可以一直load下去
2011/03/28 Javascript
jquery $.each 和for怎么跳出循环终止本次循环
2013/09/27 Javascript
window.showModalDialog()返回值的学习心得总结
2014/01/07 Javascript
原生JS和jQuery版实现文件上传功能
2016/04/18 Javascript
js canvas实现擦除动画
2016/07/16 Javascript
Node.js开启Https的实践详解
2016/10/25 Javascript
实现一个完整的Node.js RESTful API的示例
2017/09/29 Javascript
js 图片转base64的方式(两种)
2018/04/24 Javascript
js jquery 获取某一元素到浏览器顶端的距离实现方法
2018/09/05 jQuery
Vue插槽原理与用法详解
2019/03/05 Javascript
[52:06]完美世界DOTA2联赛决赛日 Inki vs LBZS 第一场 11.08
2020/11/10 DOTA
Python中input和raw_input的一点区别
2014/10/21 Python
Python中使用socket发送HTTP请求数据接收不完整问题解决方法
2015/02/04 Python
在Python程序员面试中被问的最多的10道题
2017/12/05 Python
python scp 批量同步文件的实现方法
2019/01/03 Python
Python转换时间的图文方法
2019/07/01 Python
python输出pdf文档的实例
2020/02/13 Python
Python + selenium + crontab实现每日定时自动打卡功能
2020/03/31 Python
Python 抓取数据存储到Redis中的操作
2020/07/16 Python
详解使用CSS3的@media来编写响应式的页面
2017/11/01 HTML / CSS
阿波罗盒子:Apollo Box
2017/08/14 全球购物
德国在线香料制造商:Gewürzland
2020/03/10 全球购物
大学生村官心得体会范文
2014/01/04 职场文书
小区停车场管理制度
2014/01/27 职场文书
《童年的发现》教学反思
2014/02/14 职场文书
航海技术专业毕业生求职信
2014/04/06 职场文书
乡镇党的群众路线教育实践活动总结报告
2014/10/30 职场文书
学生上课迟到检讨书
2015/01/01 职场文书
公司的力量观后感
2015/06/05 职场文书
放飞理想主题班会
2015/08/14 职场文书
初中思品教学反思
2016/02/20 职场文书
SqlServer: 如何更改表的文件组?(进而改变存储位置)
2021/04/05 SQL Server