JavaScript中的对象与JSON

 更新时间:2015年07月03日 09:01:41   投稿:junjie  
这篇文章主要介绍了JavaScript中的对象与JSON,本文讲解了定义JSON与javascript对象、javascript对象转换为JSON、javascript中解析JSON等内容,需要的朋友可以参考下

简介

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真正的表现形式是字符串。

相关文章

  • 浅谈Web页面向后台提交数据的方式和选择

    浅谈Web页面向后台提交数据的方式和选择

    下面小编就为大家带来一篇浅谈Web页面向后台提交数据的方式和选择。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • Javascript String.replace的妙用

    Javascript String.replace的妙用

    字符替换是一个非常重要的功能,javascript 中有一个 String.replace( ),但是此方法有很多不为新手所知的妙用,如果用的好了,可以为您节省很多宝贵时间,还等什么?马上进来看看吧!
    2009-09-09
  • 浅谈javascript中new操作符的原理

    浅谈javascript中new操作符的原理

    下面小编就为大家带来一篇浅谈javascript中new操作符的原理。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • 详解JavaScript ES6中的Generator

    详解JavaScript ES6中的Generator

    这篇文章主要介绍了详解JavaScript ES6中的Generator,ES6版本的JS带来了诸多简洁化的改善,需要的朋友可以参考下
    2015-07-07
  • mailto的使用技巧分享

    mailto的使用技巧分享

    如何使用mailto?对于大多数人来说并不是很陌生,但是实用上的细节部分你们有没有注意到,接下来分享一下本人在使用过程中的经验,需要了解的朋友可以参考下
    2012-12-12
  • javascript object oriented 面向对象编程初步

    javascript object oriented 面向对象编程初步

    javascript object oriented 面向对象编程初步...
    2007-01-01
  • C#中使用迭代器处理等待任务

    C#中使用迭代器处理等待任务

    这篇文章主要介绍了C#中使用迭代器处理等待任务,迭代器是C#的重要特性,文中用迭代器进行了异步编程的相关实践,需要的朋友可以参考下
    2015-07-07
  • offsetParent 算法分析

    offsetParent 算法分析

    以下部分内容翻译自 W3C 的 CSSOM View Module,W3C 工作草案 2008年2月22日。
    2010-04-04
  • jQuery入门问答 整理的几个常见的初学者问题

    jQuery入门问答 整理的几个常见的初学者问题

    大家可能看到了,我已经将过去写的两篇jQuery的教程删掉了,因为附件不存在了等等问题,所以删除了,从今天开始我就写jQuery教程第二版了!希望大家能够支持我!
    2010-02-02
  • js单词形式的运算符

    js单词形式的运算符

    这篇文章主要介绍了js单词形式的运算符,需要的朋友可以参考下
    2014-05-05

最新评论