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 相关文章推荐
prototype 1.5 &amp; scriptaculous 1.6.1 学习笔记
Sep 07 Javascript
js 变量类型转换常用函数与代码[比较全]
Dec 01 Javascript
jQuery Validate表单验证入门学习
Dec 18 Javascript
基于jQuery实现返回顶部实例代码
Jan 01 Javascript
jQuery如何防止Ajax重复提交
Oct 14 Javascript
JS实现淡入淡出图片效果的方法分析
Dec 20 Javascript
AngularJS实现页面定时刷新
Mar 14 Javascript
基于JavaScript实现多级菜单效果
Jul 25 Javascript
React Native使用百度Echarts显示图表的示例代码
Nov 07 Javascript
Vue2.0 http请求以及loading展示实例
Mar 06 Javascript
微信小程序 JS动态修改样式的实现方法
Dec 16 Javascript
vue 解决provide和inject响应的问题
Nov 12 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判断浏览器的类型和语言的函数代码
2013/02/28 PHP
php的mkdir()函数创建文件夹比较安全的权限设置方法
2014/07/28 PHP
浅析php原型模式
2014/11/25 PHP
BOOM vs RR BO3 第一场2.13
2021/03/10 DOTA
国外的为初学者写的JavaScript教程
2008/06/09 Javascript
JavaScript 异步调用框架 (Part 2 - 用例设计)
2009/08/03 Javascript
Extjs学习笔记之一 初识Extjs之MessageBox
2010/01/07 Javascript
用js实现判断当前网址的来路如果不是指定的来路就跳转到指定页面
2011/05/02 Javascript
node.js中的fs.utimes方法使用说明
2014/12/15 Javascript
Javascript对象Clone实例分析
2015/06/09 Javascript
javascript中Date对象的使用总结
2016/11/21 Javascript
Bootstrap源码解读导航(6)
2016/12/23 Javascript
AngularJS的脏检查深入分析
2017/04/22 Javascript
JS设置随机出现2个数字的实例代码
2017/07/19 Javascript
jQuery实现所有验证通过方可提交的表单验证
2017/11/21 jQuery
nodejs中函数的调用实例详解
2018/10/31 NodeJs
javascript实现导航栏分页效果
2019/06/27 Javascript
微信小程序如何实现精确的日期时间选择器
2020/01/21 Javascript
vue中解决拖拽改变存在iframe的div大小时卡顿问题
2020/07/22 Javascript
Python装饰器(decorator)定义与用法详解
2018/02/09 Python
python 通过麦克风录音 生成wav文件的方法
2019/01/09 Python
pandas 层次化索引的实现方法
2019/07/06 Python
Python如何使用神经网络进行简单文本分类
2021/02/25 Python
html svg生成环形进度条的实现方法
2019/09/23 HTML / CSS
职业生涯规划怎么写
2013/12/29 职场文书
安全生产目标管理责任书
2014/07/25 职场文书
2014年工人工作总结
2014/11/25 职场文书
党员先进事迹材料
2014/12/19 职场文书
物业保安辞职信
2015/05/12 职场文书
Redis三种集群模式详解
2021/10/05 Redis
HTML5+CSS+JavaScript实现捉虫小游戏设计和实现
2021/10/16 HTML / CSS
Golang中channel的原理解读(推荐)
2021/10/16 Golang
Java tomcat手动配置servlet详解
2021/11/27 Java/Android
Sql Server之数据类型详解
2022/02/28 SQL Server
深入理解pytorch库的dockerfile
2022/06/10 Python
在SQL Server中使用 Try Catch 处理异常的示例详解
2022/07/15 SQL Server