首页 > 代码库 > JavaScript之Ajax-Json

JavaScript之Ajax-Json

一、简介:Json是JavaScript中读取结构化数据更好的方式。因为Json数据可以直接传给eval(),而且不必创建DOM对象。Json是一种数据格式,不是一种编程语言,虽然具有相同的语法形式,带Json并不从属于JavaScript.而且,并不是只有JavaScript才使用Json,毕竟Json只是一种数据格式。很多编程语言都有针对Json的解析器和序列化器。

 

二、语法

Json的语法可以表示一下三种类型的值

1、简单值:使用与JavaScript相同的语法,可以在Json中表示字符串、数值、布尔值和null。注意:Json不支持JavaSciprt中的特殊值:undefined。

2、对象:对象作为一种复杂的数据类型,表示的是一组无序的键值对儿。而每个键值对中的值可以是简单值,也可以是复杂数据类型的值。

3、数组:数组也是一种复杂的数据类型,表示一组有序的值的列表,可以通过数值索引来访问其中的值。数组的值也可以是简单值、对象、数组。

 

2.1 简单值

简单值在Json中的表示可以是字符串、数值、布尔值和null!

注意:上面这些数据都和JavaScript中一样,只有字符串,在Js中字符串可以用单引号表示,但是在Json中字符串使用单引号会报错!

 

2.2 对象

Js中的对象,代码如下:

var person={
  name:"张三",
  age:23
};

var person={
  "name":"张三",
  "age":23
};

在JS中上面两种方法都可以表示对象,但是在Json中没有变量的概念。其次,没有末尾的分号(因为这不是JavaScipt语句,所以也不需要分号),

所以在Json的对象中,对象的属性必须是字符串(也就是说要加双引号),属性的值可以是简单值,数组,对象,所以在Json中的对象表现形式如下:

{
"name":"张三""age":23
}

注意:对象的属性名必须加双引号!

 

三、Json的解析与序列化

JSON之所以流行,拥有与JavaScript类似的语法并不是全部的原因,更重要的原因是,可以把Json数据结构解析为有用的JavaScipt对象。与XML数据解析成DOM文档而且从中提取数据麻烦相比,JSON可以解析为JavaScript对象的优势十分明显!代码如下:

[
{"title":"book_one",
  "year":"2016"
},
{"title":"book_two",
  "year":"2015"
},
{"title":"book_three",
  "year":"2015"
},
]

下面需要取得第三本书的名字,通过Json转换为JavaScript对象的方式获取

books[2].title

通过XML解析成DOM元素,在获取:

document.getElementsByTagName("book")[2].getAttribute("title");

比较两种方法,就知道Json为什么会得到JavaSciprt开发人员的欢迎了!

 

JavaScript之Ajax-Json