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 相关文章推荐
禁止刷新,回退的JS
Nov 25 Javascript
javascript form 验证函数 弹出对话框形式
Jun 23 Javascript
IE图片缓存document.execCommand(&quot;BackgroundImageCache&quot;,false,true)
Mar 01 Javascript
使用jQuery管理选择结果
Jan 20 Javascript
jQuery学习笔记之Ajax用法实例详解
Dec 01 Javascript
谈谈AngularJs中的隐藏和显示
Dec 09 Javascript
理解JavaScript事件对象
Jan 25 Javascript
JavaScript中文件上传API详解
Apr 01 Javascript
js记录点击某个按钮的次数-刷新次数为初始状态的实例
Feb 15 Javascript
vue路由拦截及页面跳转的设置方法
May 24 Javascript
Vue加载组件、动态加载组件的几种方式
Aug 31 Javascript
create-react-app安装出错问题解决方法
Sep 04 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模板函数 正则实现代码
2012/10/15 PHP
用mysql_fetch_array()获取当前行数据的方法详解
2013/06/05 PHP
php命令行用法入门实例教程
2014/10/27 PHP
php去除数组中重复数据
2014/11/18 PHP
JS array 数组详解
2009/03/22 Javascript
利用jQuery 实现GridView异步排序、分页的代码
2010/02/06 Javascript
jquery中实现简单的tabs插件功能的代码
2011/03/02 Javascript
基于JQuery 滑动与动画的说明介绍
2013/04/18 Javascript
JavaScript数据类型学习笔记
2016/01/25 Javascript
js实现文字超出部分用省略号代替实例代码
2016/09/01 Javascript
jQuery中delegate()方法的用法详解
2016/10/13 Javascript
Angular 多模块项目构建过程
2020/02/13 Javascript
Jquery高级应用Deferred对象原理及使用实例
2020/05/28 jQuery
JS代码简洁方式之函数方法详解
2020/07/28 Javascript
[02:56]DOTA2上海特锦赛小组赛解说FreeAgain采访花絮
2016/02/27 DOTA
[01:18]PWL开团时刻DAY4——圣剑与抢盾
2020/11/03 DOTA
Python3编码问题 Unicode utf-8 bytes互转方法
2018/10/26 Python
python实现石头剪刀布程序
2021/01/20 Python
基于Numpy.convolve使用Python实现滑动平均滤波的思路详解
2019/05/16 Python
pyinstaller打包多个py文件和去除cmd黑框的方法
2019/06/21 Python
详解Selenium+PhantomJS+python简单实现爬虫的功能
2019/07/14 Python
PYcharm 激活方法(推荐)
2020/03/23 Python
Django中的AutoField字段使用
2020/05/18 Python
Python devel安装失败问题解决方案
2020/06/09 Python
HTML5实现锚点时请使用id取代name
2013/09/06 HTML / CSS
小学运动会广播稿200字(十二篇)
2014/01/14 职场文书
会计学专业学生的求职信范文
2014/01/27 职场文书
教师申诉制度
2014/01/29 职场文书
安全协议书范本
2014/04/21 职场文书
竞选学习委员演讲稿
2014/04/28 职场文书
副总经理任命书
2014/06/05 职场文书
公务员中国梦演讲稿
2014/08/19 职场文书
主题班会开场白
2015/06/01 职场文书
2016年国培心得体会及反思
2016/01/13 职场文书
关于Javascript闭包与应用的详解
2021/04/22 Javascript
Python绘制地图神器folium的新人入门指南
2021/05/23 Python