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 相关文章推荐
简单三步,搞掂内存泄漏
Mar 10 Javascript
把textarea中字符串里含有的回车换行替换成&amp;lt;br&amp;gt;的javascript代码
Apr 20 Javascript
JavaScript学习笔记(二) js对象
Oct 25 Javascript
node.js中的console.timeEnd方法使用说明
Dec 09 Javascript
JavaScript获取并更改input标签name属性的方法
Jul 02 Javascript
jquery实现的简单二级菜单效果代码
Sep 22 Javascript
react-native-fs实现文件下载、文本存储的示例代码
Sep 22 Javascript
详解webpack-dev-server使用http-proxy解决跨域问题
Jan 13 Javascript
Vuex的actions属性的具体使用
Apr 14 Javascript
vue elementUI使用tabs与导航栏联动
Jun 21 Javascript
nuxt 路由、过渡特效、中间件的实现代码
Nov 06 Javascript
深入了解Vue3模板编译原理
Nov 19 Vue.js
百度地图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
用Socket发送电子邮件(利用需要验证的SMTP服务器)
2006/10/09 PHP
PHP HTML代码串 截取实现代码
2009/06/29 PHP
深入PHP操作MongoDB的技术总结
2013/06/02 PHP
深入探究PHP的多进程编程方法
2015/08/18 PHP
详解WordPress开发中的get_post与get_posts函数使用
2016/01/04 PHP
PHP 断点续传实例详解
2017/11/11 PHP
jquery实现邮箱自动补全功能示例分享
2014/02/17 Javascript
JS实现判断滚动条滚到页面底部并执行事件的方法
2014/12/18 Javascript
JavaScript数组常用方法
2015/03/02 Javascript
jquery+ajax请求且带返回值的代码
2015/08/12 Javascript
jquery实现超简洁的TAB选项卡效果代码
2015/08/28 Javascript
javascript性能优化之DOM交互操作实例分析
2015/12/12 Javascript
原生JS封装Ajax插件(同域、jsonp跨域)
2016/05/03 Javascript
jQuery基础知识点总结(DOM操作)
2016/06/01 Javascript
js跨域资源共享 基础篇
2016/07/02 Javascript
利用node.js如何搭建一个简易的即时响应服务器
2017/05/28 Javascript
在vscode里使用.vue代码模板的方法
2018/04/28 Javascript
JS实现的input选择图片本地预览功能示例
2018/08/29 Javascript
VSCode搭建Vue项目的方法
2020/04/30 Javascript
在vue中实现echarts随窗体变化
2020/07/27 Javascript
探索node之事件循环的实现
2020/10/30 Javascript
python timestamp和datetime之间转换详解
2017/12/11 Python
Django中自定义查询对象的具体使用
2019/10/13 Python
python通过matplotlib生成复合饼图
2020/02/06 Python
python ffmpeg任意提取视频帧的方法
2020/02/21 Python
python利用xlsxwriter模块 操作 Excel
2020/10/14 Python
Python实现哲学家就餐问题实例代码
2020/11/09 Python
SkinCeuticals官网:美国药妆品牌
2018/04/19 全球购物
日本亚马逊官方网站:Amazon.co.jp
2020/04/14 全球购物
数据库笔试题
2013/05/09 面试题
广告学专业毕业生自荐信
2013/09/24 职场文书
家电业务员岗位职责
2014/03/10 职场文书
安全承诺书格式
2014/05/21 职场文书
广告学专业求职信
2014/06/19 职场文书
清洁工个人总结
2015/03/04 职场文书
tomcat的catalina.out日志按自定义时间格式进行分割的操作方法
2022/04/02 Servers