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.AutoComplete.js中文修正版(支持firefox)
Apr 09 Javascript
基于编写jQuery的无缝滚动插件
Aug 02 Javascript
jquery制作select列表双向选择示例代码
Sep 02 Javascript
jQuery实现预加载图片的方法
Mar 17 Javascript
JavaScript通过字符串调用函数的实现方法
Mar 18 Javascript
jquery仿QQ登录账号选择下拉框效果
Mar 22 Javascript
jQuery技巧之让任何组件都支持类似DOM的事件管理
Apr 05 Javascript
Node.js中多进程模块Cluster的介绍与使用
May 27 Javascript
使用Angular CLI进行单元测试和E2E测试的方法
Mar 24 Javascript
vue表单验证你真的会了吗?vue表单验证(form)validate
Apr 07 Javascript
JS计算两个数组的交集、差集、并集、补集(多种实现方式)
May 21 Javascript
JS面向对象编程实现的拖拽功能案例详解
Mar 03 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
Codeigniter+PHPExcel实现导出数据到Excel文件
2014/06/12 PHP
ThinkPHP之N方法实例详解
2014/06/20 PHP
yii2.0使用Plupload实现带缩放功能的多图上传
2015/12/22 PHP
在PHP中输出JS语句以及乱码问题的解决方案
2019/02/13 PHP
php实现JWT验证的实例教程
2020/11/26 PHP
jQuery获得内容和属性方法及示例
2013/12/02 Javascript
js/jQuery简单实现选项卡功能
2014/01/02 Javascript
仿淘宝TAB切换搜索框搜索切换的相关内容
2014/09/21 Javascript
jQuery 动态云标签插件
2014/11/11 Javascript
jQuery实现的输入框选择时间插件用法实例
2015/02/28 Javascript
Easyui form combobox省市区三级联动
2016/01/13 Javascript
js不间断滚动的简单实现
2016/06/03 Javascript
基于jQuery实现弹幕APP
2017/02/10 Javascript
原生js实现可拖拽效果
2017/02/28 Javascript
完美实现js焦点轮播效果(一)
2017/03/07 Javascript
JavaScript中offsetWidth的bug及解决方法
2017/05/17 Javascript
Vue实现路由跳转和嵌套
2017/06/20 Javascript
如何为vue的项目添加单元测试
2018/12/19 Javascript
《javascript设计模式》学习笔记一:Javascript面向对象程序设计对象成员的定义分析
2020/04/07 Javascript
vue 动态生成拓扑图的示例
2021/01/03 Vue.js
Python创建模块及模块导入的方法
2015/05/27 Python
python Spyder界面无法打开的解决方法
2018/04/27 Python
老生常谈python中的重载
2018/11/11 Python
python图形开发GUI库wxpython使用方法详解
2020/02/14 Python
Python 炫技操作之合并字典的七种方法
2020/04/10 Python
细说CSS3中的选择符
2008/10/17 HTML / CSS
比利时网上药店: Drogisterij.net
2017/03/17 全球购物
Araks官网:纽约内衣品牌
2020/10/15 全球购物
两则小学生的自我评价分享
2013/11/14 职场文书
小学班主任寄语大全
2014/04/04 职场文书
机关党总支领导班子整改方案
2014/09/20 职场文书
幼儿园新学期开学寄语
2015/05/27 职场文书
爱心捐赠活动简讯
2015/07/20 职场文书
导游词之淮安明祖陵
2019/11/25 职场文书
Python基于百度API识别并提取图片中文字
2021/06/27 Python
python 实现图片特效处理
2022/04/03 Python