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 相关文章推荐
利用ASP发送和接收XML数据的处理方法与代码
Nov 13 Javascript
理解Javascript_03_javascript全局观
Oct 11 Javascript
jQuery 无限级菜单的简单实例
Feb 21 Javascript
javascript获取和判断浏览器窗口、屏幕、网页的高度、宽度等
May 08 Javascript
Jquery表单验证失败后不提交的解决方法
Oct 18 Javascript
jQuery实现文字自动横移
Jan 08 Javascript
Bootstrap轮播图学习使用
Feb 10 Javascript
JS获取浮动(float)元素的style.left值为空的快速解决办法
Feb 19 Javascript
简单理解Vue中的nextTick方法
Jan 30 Javascript
vuex直接赋值的三种方法总结
Sep 16 Javascript
vue基于Echarts的拖拽数据可视化功能实现
Dec 04 Vue.js
用JS写一个发布订阅模式
Nov 07 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的FTP学习(三)
2006/10/09 PHP
解决文件名解压后乱码的问题 将文件名进行转码的代码
2012/01/10 PHP
使用PHP实现Mysql读写分离
2013/06/28 PHP
PHP将回调函数作用到给定数组单元的方法
2014/08/19 PHP
通过php添加xml文档内容的方法
2015/01/23 PHP
简明json介绍
2008/09/28 Javascript
来自国外的页面JavaScript文件优化
2010/12/08 Javascript
分别用marquee和div+js实现首尾相连循环滚动效果,仅3行代码
2011/09/21 Javascript
网页右键ie不支持event.preventDefault和event.returnValue (需要加window)
2013/02/22 Javascript
jquery分隔Url的param方法(推荐)
2016/05/25 Javascript
jQuery实现表格文本框淡入更改值后淡出效果
2016/09/27 Javascript
探究JavaScript中的五种事件处理程序方式
2016/12/07 Javascript
原生js实现商品放大镜效果
2017/01/12 Javascript
BootStrap表单验证实例代码
2017/01/13 Javascript
jQuery简单获取DIV和A标签元素位置的方法
2017/02/07 Javascript
iview日期控件,双向绑定日期格式的方法
2018/03/15 Javascript
vue keep-alive请求数据的方法示例
2018/05/16 Javascript
vue结合axios与后端进行ajax交互的方法
2018/07/06 Javascript
vue使用echarts图表的详细方法
2018/10/22 Javascript
微信小程序实现swiper切换卡内嵌滚动条不显示的方法示例
2018/12/20 Javascript
vue实现点击按钮“查看详情”弹窗展示详情列表操作
2020/09/09 Javascript
django利用request id便于定位及给日志加上request_id
2018/08/26 Python
对pandas的算术运算和数据对齐实例详解
2018/12/22 Python
python 读取修改pcap包的例子
2019/07/23 Python
Python如何访问字符串中的值
2020/02/09 Python
优秀少先队员主要事迹材料
2014/05/28 职场文书
2014年十一国庆节爱国演讲稿
2014/09/23 职场文书
保安2014年终工作总结
2014/12/06 职场文书
2015年售后服务工作总结
2015/04/25 职场文书
乡镇保密工作承诺书
2015/05/04 职场文书
教你快速开启Apache SkyWalking的自监控
2021/04/25 Servers
Python 循环读取数据内存不足的解决方案
2021/05/25 Python
Vue中foreach数组与js中遍历数组的写法说明
2021/06/05 Vue.js
浅谈MySQL表空间回收的正确姿势
2021/10/05 MySQL
MyBatis配置文件解析与MyBatis实例演示
2022/04/07 Java/Android
宝塔更新Python及Flask项目的部署
2022/04/11 Python