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生成不重复的随机数组的简单实例
Jul 10 Javascript
Angularjs在初始化未完毕时出现闪烁问题的解决方法分析
Aug 05 Javascript
JavaScript正则表达式实例详解
Oct 16 Javascript
AngularJS指令中的绑定策略实例分析
Dec 14 Javascript
js 递归和定时器的实例解析
Feb 03 Javascript
详解webpack3如何正确引用并使用jQuery库
Aug 26 jQuery
windows下更新npm和node的方法
Nov 30 Javascript
HTML5+JS+JQuery+ECharts实现异步加载问题
Dec 16 jQuery
js中的闭包学习心得
Feb 06 Javascript
浅谈Vuex注入Vue生命周期的过程
May 20 Javascript
layui 数据表格复选框实现单选功能的例子
Sep 19 Javascript
vuex 实现getter值赋值给vue组件里的data示例
Nov 05 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
DIY一个适配电脑声卡的动圈话筒放大器
2021/03/02 无线电
在Windows下编译适用于PHP 5.2.12及5.2.13的eAccelerator.dll(附下载)
2010/05/04 PHP
php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
2011/11/02 PHP
Codeigniter中mkdir创建目录遇到权限问题和解决方法
2014/07/25 PHP
php打印一个边长为N的实心和空心菱型的方法
2015/03/02 PHP
CodeIgniter配置之SESSION用法实例分析
2016/01/19 PHP
详解PHP字符串替换str_replace()函数四种用法
2017/10/13 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
JQuery 选择器 xpath 语法应用
2010/05/13 Javascript
jquery获取焦点和失去焦点事件代码
2013/04/21 Javascript
javascript 得到文件后缀名的思路及实现
2020/05/09 Javascript
判断js中各种数据的类型方法之typeof与0bject.prototype.toString讲解
2013/11/07 Javascript
浅谈JavaScript function函数种类
2014/12/29 Javascript
JavaScript实现动态添加,删除行的方法实例详解
2015/07/02 Javascript
javascript实现多栏闭合展开式广告位菜单效果实例
2015/08/05 Javascript
用JavaScript来美化HTML的select标签的下拉列表效果
2015/11/17 Javascript
javascript单页面手势滑屏切换原理详解
2016/03/21 Javascript
对layer弹出框中icon数字参数的说明介绍
2019/09/04 Javascript
python数据结构树和二叉树简介
2014/04/29 Python
如何优雅地处理Django中的favicon.ico图标详解
2018/07/05 Python
python实现flappy bird游戏
2018/12/24 Python
自学python的建议和周期预算
2019/01/30 Python
详解Python sys.argv使用方法
2019/05/10 Python
numpy下的flatten()函数用法详解
2019/05/27 Python
python 实现将文件或文件夹用相对路径打包为 tar.gz 文件的方法
2019/06/10 Python
python提取照片坐标信息的实例代码
2019/08/14 Python
Pytorch 搭建分类回归神经网络并用GPU进行加速的例子
2020/01/09 Python
基于python连接oracle导并出数据文件
2020/04/28 Python
Pycharm及python安装详细教程(图解)
2020/07/31 Python
Selenium环境变量配置(火狐浏览器)及验证实现
2020/12/07 Python
Django模板报TemplateDoesNotExist异常(亲测可行)
2020/12/18 Python
python中用Scrapy实现定时爬虫的实例讲解
2021/01/18 Python
中专三年学习的个人自我评价
2013/12/12 职场文书
物业招聘计划书
2014/01/10 职场文书
工作疏忽、懈怠的检讨书
2014/09/11 职场文书
Go timer如何调度
2021/06/09 Golang