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 相关文章推荐
用于自动添加Digg This!按钮的JavaScript
Dec 23 Javascript
JS 密码强度验证(兼容IE,火狐,谷歌)
Mar 15 Javascript
基于jquery的仿百度的鼠标移入图片抖动效果
Sep 17 Javascript
Three.js源码阅读笔记(Object3D类)
Dec 27 Javascript
javascript 按键事件(兼容各浏览器)
Dec 20 Javascript
jquery设置text的值示例(设置文本框 DIV 表单值)
Jan 06 Javascript
jQuery之DOM对象和jQuery对象的转换与区别分析
Jan 08 Javascript
js中实现字符串和数组的相互转化详解
Jan 24 Javascript
node.js中express-session配置项详解
May 31 Javascript
vue一步步实现alert功能
Jul 05 Javascript
使用JS动态显示文本
Sep 09 Javascript
深入理解Vue 组件之间传值
Aug 16 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
用Flash图形化数据(二)
2006/10/09 PHP
PHP与javascript的两种交互方式
2006/10/09 PHP
PHP 第一节 php简介
2012/04/28 PHP
PHP中计算字符串相似度的函数代码
2012/12/29 PHP
PHP开发制作一个简单的活动日程表Calendar
2016/06/20 PHP
PHP中文字符串截断无乱码解决方法
2016/10/10 PHP
js继承 Base类的源码解析
2008/12/30 Javascript
Jquery 快速构建可拖曳的购物车DragDrop
2009/11/30 Javascript
js/jQuery对象互转(快速操作dom元素)
2013/02/04 Javascript
浏览器窗口大小变化时使用resize事件对框架不起作用的解决方法
2014/05/11 Javascript
Jquery on方法绑定事件后执行多次的解决方法
2016/06/02 Javascript
使用base64对图片的二进制进行编码并用ajax进行显示
2017/01/03 Javascript
JS实现指定区域的全屏显示功能示例
2019/04/25 Javascript
Layui点击图片弹框预览的实现方法
2019/09/16 Javascript
Vue通过getAction的finally来最大程度避免影响主数据呈现问题
2020/04/24 Javascript
vue cli 3.0通用打包配置代码,不分一二级目录
2020/09/02 Javascript
vue解决跨域问题(推荐)
2020/11/10 Javascript
[01:03:38]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS CIS
2014/05/22 DOTA
Python字符串替换实例分析
2015/05/11 Python
Python Tkinter实现简易计算器功能
2018/01/30 Python
[原创]Python入门教程1. 基本运算【四则运算、变量、math模块等】
2018/10/28 Python
解决python 虚拟环境删除包无法加载的问题
2020/07/13 Python
提高python代码运行效率的一些建议
2020/09/29 Python
python获取linux系统信息的三种方法
2020/10/14 Python
canvas绘制圆角头像的实现方法
2019/01/17 HTML / CSS
澳大利亚最受欢迎的超级商场每日优惠:Catch
2020/11/17 全球购物
中学清明节活动总结
2014/07/04 职场文书
搞笑的获奖感言
2014/08/16 职场文书
2015年机关后勤工作总结
2015/05/26 职场文书
公司联欢会主持词
2015/07/04 职场文书
大学运动会通讯稿
2015/07/18 职场文书
用position:sticky完美解决小程序吸顶问题的实现方法
2021/04/24 HTML / CSS
redis不能访问本机真实ip地址的解决方案
2021/07/07 Redis
Winsows11性能如何? win11性能测评多核竟比Win10差了10%
2021/11/21 数码科技
什么是SOLID
2022/03/24 Javascript
python套接字socket通信
2022/04/01 Python