js解析与序列化json数据(一)json.stringify()的基本用法


Posted in Javascript onFebruary 01, 2013

早期的JSON解析器基本上就是使用JavaScript的eval()函数。由于JSON是JavaScript语法的自己,因此eval()函数可以解析、解释并返回JavaScript的对象和数组。
ECMAScript 5对解析JSON的行为进行了规范,定义了全局对象JSON。

JSON对象有两个方法:stringify()和parse()。在最简单的情况下,这两个方法分别用于把JavaScript对象序列化为JSON字符串和把JSON字符串解析为原生JavaScript。例如:
新建一个HTML:代码如下:

<html> 
<head> 
<title></title> 
<script type="text/javascript"> 
function init() 
{ 
var book={ 
title:"JavaScript高级程序设计", 
authors:[ 
"Nicholas C. Zakas" 
], 
edition:3, 
year:2011 
}; 
var jsonBook=JSON.stringify(book); 
var objectBook=JSON.parse(jsonBook); 
var title=objectBook.title;} </script> </head> <body> <input type="button" onclick="init()" value="测试" /> </body> </html>

默认情况下,JSON.stringify()输出的JSON字符串不包含任何空字符或缩进,因此保存在jsonBook中的字符串如下所示:
{"title":"JavaScript高级程序设计","authors":["Nicholas C. Zakas"],"edition":3,"year":2011}

在序列化JavaScript对象时,所有函数及原型成员都会被有意忽略,不体现在结果中。此外,值为undefined的任何属性也都会被跳过。结果中最终都是值为有效JSON数据类型的实例属性。

注意,虽然book与objectBook具有相同的属性,但它们是两个独立的、没有任何关系的对象。如果传给JSON.parse()的字符串不是有效的JSON,该方法会抛出错误。

Javascript 相关文章推荐
使用Jquery搭建最佳用户体验的登录页面之记住密码自动登录功能(含后台代码)
Jul 10 Javascript
页面加载完成后再执行JS的jquery写法以及区别说明
Feb 22 Javascript
JS实现图片平面旋转的方法
Mar 01 Javascript
非常实用的js验证框架实现源码 附原理方法
Jun 08 Javascript
js enter键激发事件实例代码
Aug 17 Javascript
Vue中之nextTick函数源码分析详解
Oct 17 Javascript
cropper js基于vue的图片裁剪上传功能的实现代码
Mar 01 Javascript
js实现各浏览器全屏代码实例
Jul 03 Javascript
原生JS实现DOM加载完成马上执行JS代码的方法
Sep 07 Javascript
在React项目中使用Eslint代码检查工具及常见问题
Oct 10 Javascript
js实现计时器秒表功能
Dec 16 Javascript
vue+Element-ui实现登录注册表单
Nov 17 Javascript
百度地图api应用标注地理位置信息(js版)
Feb 01 #Javascript
jquery select动态加载选择(兼容各种浏览器)
Feb 01 #Javascript
表单元素的submit()方法和onsubmit事件应用概述
Feb 01 #Javascript
js用Date对象处理时间实现思路及代码
Jan 31 #Javascript
document.all的一个比较完整的总结及案例
Jan 31 #Javascript
javascript对select标签的控制(option选项/select)
Jan 31 #Javascript
S2SH整合JQuery+Ajax实现登录验证功能实现代码
Jan 30 #Javascript
You might like
php实现简单文件下载的方法
2015/01/30 PHP
php插入排序法实现数组排序实例
2015/02/16 PHP
laravel5创建service provider和facade的方法详解
2016/07/26 PHP
PHP编写简单的App接口
2016/08/28 PHP
Yii2汉字转拼音类的实例代码
2017/04/18 PHP
php+ajax实现仿百度查询下拉内容功能示例
2017/10/20 PHP
javaScript 数值型和字符串型之间的转换
2009/07/25 Javascript
JS批量操作CSS属性详细解析
2013/12/16 Javascript
Firefox下无法正常显示年份的解决方法
2014/09/04 Javascript
javascript二维数组转置实例
2015/01/22 Javascript
jquery简单实现外部链接用新窗口打开的方法
2015/05/30 Javascript
JS实现的5级联动Select下拉选择框实例
2015/08/17 Javascript
jquery实现的仿天猫侧导航tab切换效果
2015/08/24 Javascript
浅析Bootstrip的select控件绑定数据的问题
2016/05/10 Javascript
20分钟轻松创建自己的Bootstrap站点
2016/05/12 Javascript
浅谈JavaScript 执行环境、作用域及垃圾回收
2016/05/31 Javascript
jQuery插件EasyUI获取当前Tab中iframe窗体对象的方法
2016/08/05 Javascript
如何在AngularJs中调用第三方插件库
2017/05/21 Javascript
vue awesome swiper异步加载数据出现的bug问题
2018/07/03 Javascript
vue同个按钮控制展开和折叠同个事件操作
2020/07/29 Javascript
解决VantUI popup 弹窗不弹出或无蒙层的问题
2020/11/03 Javascript
[01:04:06]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第一局
2016/02/26 DOTA
给Python入门者的一些编程建议
2015/06/15 Python
如何在Python中实现goto语句的方法
2019/05/18 Python
CSS3 实现侧边栏展开收起动画
2014/12/22 HTML / CSS
HTML5 Canvas 旋转风车绘制
2017/08/18 HTML / CSS
Bealls Florida百货商店:生活服饰、家居装饰和鞋子
2018/02/23 全球购物
当当网软件测试笔试题
2015/11/24 面试题
实习医生自我评价
2013/09/22 职场文书
大一新生军训时的自我评价分享
2013/12/05 职场文书
元旦晚会上单位领导演讲稿
2014/01/05 职场文书
营销总经理岗位职责
2014/02/02 职场文书
单位委托书范本
2014/04/04 职场文书
学校党员对照检查材料
2014/08/28 职场文书
餐厅收银员岗位职责
2015/04/07 职场文书
2015年秋季校长开学典礼致辞
2015/07/29 职场文书