?
在说JSON之前,我们先来看一下在javascript中创建对象的方式,也就是创建对象的字面量表示法。我们知道js中有五种基本的数据类型,分别是:
Undefined(变量可能没有声明或者赋值)
Null(为空,没有添加引用)
Boolean(布尔类型)
Number(数值类型);
Obeject(本质上是一个无序的键值对集合)。
在js中声明变量通常使用字面量表示法如下
这种方法当然可以创建变量,但是我们应该考虑到一个问题,如果我们要传递数据,难道都要这样定义一下变量吗?这无疑会增加开发的冗余度和复杂度,举个例子,我们需要传递一份表单,这里面包含了30条数据,我们通过document.GetElementById()的方法去一个一个的取数值,这样是不是太繁琐了,当然我们可以直接将表单传递过去,从后台一个一个的拿出数据,但是我们通常是使用ajax进行的异步请求,这样的话我们应该怎样直接把表单传递过去呢?还有就是,我们从后台拿过来的数据,可能会使一串字符串组成的一个对象,这个时候拿到前台来,我们需要以对象的形式访问其各个属性值,这个时候就会用到Json.也许会想到使用一个对象或者是一串字符串去传递呢?
言归正传,我们来看一下JSON传递数据的方式吧
?????? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。
基础结构
JSON建构于两种结构:
1. "名称/值"对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组
(associative array)。
2. 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。
?
?
基础示例
简单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序。这个字符串看起来有点儿古怪,但是 JavaScript 很容易解释它,而且 JSON 可以表示比"名称 / 值对"更复杂的结构。例如,可以表示数组和复杂的对象,而不仅仅是键和值的简单列表。
使用JSON的数据格式