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 相关文章推荐
JavaScript 实现鼠标拖动元素实例代码
Feb 24 Javascript
JavaScript模拟可展开、拖动与关闭的聊天窗口实例
May 12 Javascript
Javascript函数式编程语言
Oct 11 Javascript
微信开发 使用picker封装省市区三级联动模板
Oct 28 Javascript
Node.js设置CORS跨域请求中多域名白名单的方法
Mar 28 Javascript
微信小程序调用PHP后台接口 解析纯html文本
Jun 13 Javascript
JavaScript中in和hasOwnProperty区别详解
Aug 04 Javascript
vue 子组件向父组件传值方法
Feb 26 Javascript
angularJS实现动态添加,删除div方法
Feb 27 Javascript
实例详解ztree在vue项目中使用并且带有搜索功能
Aug 24 Javascript
vue-music 使用better-scroll遇到轮播图不能自动轮播问题
Dec 03 Javascript
ant design中upload组件上传大文件,显示进度条进度的实例
Oct 29 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中替换键名的简易方法示例详解
2014/01/07 PHP
php时间戳转换的示例
2014/03/31 PHP
浅谈php扩展imagick
2014/06/02 PHP
基于Laravel5.4实现多字段登录功能方法示例
2017/08/11 PHP
laravel实现查询最后执行的一条sql语句的方法
2019/10/09 PHP
常用的javascript function代码
2008/05/23 Javascript
javascript IE中的DOM ready应用技巧
2008/07/23 Javascript
5个JavaScript经典面试题
2014/10/13 Javascript
javascript实现依次输入input自动定焦
2014/12/23 Javascript
JavaScript操作URL的相关内容集锦
2015/10/29 Javascript
jQuery实现的指纹扫描效果实例(附演示与demo源码下载)
2016/01/26 Javascript
JavaScript html5 canvas绘制时钟效果
2016/03/01 Javascript
微信小程序 wxapp内容组件 icon详细介绍
2016/10/31 Javascript
基于JS实现仿百度百家主页的轮播图效果
2017/03/06 Javascript
JavaScript输入分钟、秒倒计时技巧总结(附代码)
2017/08/17 Javascript
详解ionic本地相册、拍照、裁剪、上传(单图完全版)
2017/10/10 Javascript
浅谈使用React.setState需要注意的三点
2017/12/18 Javascript
JS求Number类型数组中最大元素方法
2018/04/08 Javascript
vue-cli扩展多模块打包的示例代码
2018/04/09 Javascript
详解小程序input框失焦事件在提交事件前的处理
2019/05/05 Javascript
手把手教你使用TypeScript开发Node.js应用
2019/05/06 Javascript
JavaScript变量作用域及内存问题实例分析
2019/06/10 Javascript
原生Vue 实现右键菜单组件功能
2019/12/16 Javascript
Python格式化压缩后的JS文件的方法
2015/03/05 Python
使用Python的Django框架结合jQuery实现AJAX购物车页面
2016/04/11 Python
python实现电子产品商店
2019/02/26 Python
python并发编程多进程 互斥锁原理解析
2019/08/20 Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
2020/02/28 Python
浅谈Python爬虫原理与数据抓取
2020/07/21 Python
基于CSS3实现的几个小loading效果
2018/09/27 HTML / CSS
Canvas 像素处理之改变透明度的实现代码
2019/01/08 HTML / CSS
高三自我评价
2014/02/01 职场文书
保密承诺书
2014/03/27 职场文书
财务管理专业毕业生求职信
2014/06/02 职场文书
小学兴趣小组活动总结
2014/07/07 职场文书
房产遗嘱范本
2015/08/06 职场文书