JavaScript中的对象与JSON


Posted in Javascript onJuly 03, 2015

简介

JSON即JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。
JSON是一种数据交换格式,像XML和YAML一样是一种在各种不同语言间传递结构化信息的方式。从另一方面来说,javascript对象是javascript语言中的一种数据类型,就像PHP中的数组、C++中类和结构体。

定义JSON与javascript对象

在javascript程序中定义对象的时候,对象的属性名可以加双引号也可以不加双引号。如果属性名包含特殊字符(如!、if等)的时候,就必须加双引号。
在定义JSON的时候,属性名必须加双引号。

代码示例:

1.定义javascript对象

var obj={name:"tudouya","sex":"man"};  #两个属性可以加双引号也可以不加

var obj={"!":"hello world"};  #属性名包含特殊字符时必须加双引号

2.定义JSON字符串
var jsonString={"name":"tudouya"};  #定义JSON时必须加双引号

javascript对象转换为JSON

1.javascript对象转换为JSON

我们可以使用javascript的内置函数将javascript对象转换为JSON,这个函数就是JSON.stringify().
代码示例:

var obj={name:"tudouya",sex:"man"};

var jsonObj=JSON.stringify(obj);

console.log(jsonObj);

##输出结果为:{"name":"tudouya","sex":"man"}

在将javascript对象转换为JSON的时候,有一点是需要我们注意的:
如果对象中包含有值为函数和日期的属性,JSON会忽略值为函数的属性,并将值为日期的属性转换为字符串。
代码示例:
var obj={

 name:"tudouya",

 birthday:new Date(),

 action:function (){

  document.write("walk");

 }

};

var jsonObj=JSON.stringify(obj);

console.log(jsonObj);

##输出结果为:{"name":"tudouya","birthday":"2014-08-12T10:05:00.497Z"}

javascript中解析JSON

在老版本的JS中,大家通常都使用eval()函数来解析JSON,但是ECMAScript5给我们提供了一个解析JSON的新函数JSON.parse()。

这个函数的使用方法比较简单,大家可以自行尝试。当对某个JSON字符串应用该函数以后,该JSON就被转换为javascript的对象,也就是说当用typeof运算符查看该函数的类型时,返回的值是Object。
同样有一点需要注意的是,该函数是ECMAScript5以后才支持的,如果是旧版本的浏览器那么可能不支持该函数。解决的方法是加载一个实现该函数的js文件,即json2.js。如果使用的是JQuery框架,jQuery.parseJSON(),该函数调用了JSON.parse()方法。
关于使用eval()方法解析JSON,这个等深入学习后会记录下来。

一个很重要的概念

作为一个前端菜鸟,经常听到别人说“JSON对象”,但是其实并没有“JSON对象”这个概念,JSON真正的表现形式是字符串。

Javascript 相关文章推荐
求解开jscript.encode代码的asp函数
Feb 28 Javascript
jscript之Open an Excel Spreadsheet
Jun 13 Javascript
javascript 模拟JQuery的Ready方法实现并出现的问题
Dec 06 Javascript
基于jquery的文本框与autocomplete结合使用(asp.net+json)
May 30 Javascript
jQuery获取CSS样式中的颜色值的问题,不同浏览器格式不同的解决办法
May 13 Javascript
深入理解JavaScript高级之词法作用域和作用域链
Dec 10 Javascript
js/jquery解析json和数组格式的方法详解
Jan 09 Javascript
JS实现的竖向折叠菜单代码
Oct 21 Javascript
vue+ElementUI实现订单页动态添加产品数据效果实例代码
Jul 13 Javascript
vue+egg+jwt实现登录验证的示例代码
May 18 Javascript
微信小程序页面上下滚动效果
Nov 18 Javascript
Vue 3自定义指令开发的相关总结
Jan 29 Vue.js
javascript生成大小写字母
Jul 03 #Javascript
jQuery切换所有复选框选中状态的方法
Jul 02 #Javascript
javascript带回调函数的异步脚本载入方法实例分析
Jul 02 #Javascript
javascript 闭包详解
Jul 02 #Javascript
JavaScript实现点击自动选择TextArea文本的方法
Jul 02 #Javascript
浅谈Javascript线程及定时机制
Jul 02 #Javascript
JavaScript获得url查询参数的方法
Jul 02 #Javascript
You might like
PHP个人网站架设连环讲(二)
2006/10/09 PHP
php使用timthumb生成缩略图的方法
2016/01/22 PHP
Symfony2 session用法实例分析
2016/02/04 PHP
Yii2中hasOne、hasMany及多对多关联查询的用法详解
2017/02/15 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
myEvent.js javascript跨浏览器事件框架
2011/10/24 Javascript
Js中获取frames中的元素示例代码
2013/07/30 Javascript
js判断选择时间不能小于当前时间的示例代码
2013/09/24 Javascript
简易的投票系统以及js刷票思路和方法
2015/04/07 Javascript
详解JavaScript中setSeconds()方法的使用
2015/06/11 Javascript
深入学习JavaScript的AngularJS框架中指令的使用方法
2016/03/05 Javascript
利用jQuery+localStorage实现一个简易的计时器示例代码
2017/12/25 jQuery
微信小程序实现topBar底部选择栏效果
2018/07/20 Javascript
详解微信UnionID作用
2019/05/15 Javascript
angularjs模态框的使用代码实例
2019/12/20 Javascript
在vue项目实现一个ctrl+f的搜索功能
2020/02/28 Javascript
vue-i18n实现中英文切换的方法
2020/07/06 Javascript
python脚本监控docker容器
2016/04/27 Python
Python编码爬坑指南(必看)
2016/06/10 Python
[原创]Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】
2018/10/29 Python
Python中文件的写入读取以及附加文字方法
2019/01/23 Python
python GUI库图形界面开发之PyQt5多行文本框控件QTextEdit详细使用方法实例
2020/02/28 Python
tensorflow使用CNN分析mnist手写体数字数据集
2020/06/17 Python
用React加CSS3实现微信拆红包动画效果
2017/03/13 HTML / CSS
详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用
2020/08/24 HTML / CSS
万得城电器土耳其网站:欧洲第一大电子产品零售商
2016/10/07 全球购物
介绍一下linux文件系统分配策略
2012/11/17 面试题
给小学生的新年寄语
2014/04/04 职场文书
党的群众路线教育实践活动总结报告
2014/07/03 职场文书
个园导游词
2015/02/04 职场文书
2015年汽车销售经理工作总结
2015/04/27 职场文书
团结主题班会
2015/08/13 职场文书
公司岗位说明书
2015/10/08 职场文书
教师法制教育培训学习心得体会
2016/01/14 职场文书
喜迎建国70周年:有关爱国的名言名句
2019/09/24 职场文书
详解Django中 render() 函数的使用方法
2021/04/22 Python