JSON

来源:互联网 发布:淘宝网上药店 编辑:程序博客网 时间:2024/06/03 18:11

前言:

由于Sencha Touch 2这种开发模式的特性,基本决定了它原生的数据交互行为几乎只能通过AJAX来实现。

说到AJAX就会不可避免的面临两个问题,第一个问题是:AJAX以何种格式来交换数据?第二个问题是:跨域的需求如何解决?

就目前而言首选的方案还是:用JSON来传递数据,靠JSONP跨域。

JSON(JavaScript Object Notation) 和 JSONP(JSON with Padding)虽然只有一个字母的差别,但压根不是一回事:JSON是一种数据交换格式,而JSONP是一种非官方跨域数据交互协议。打个比方:JSON是地下党们用来书写和交换情报的“暗号”,而JSONP则是把用暗号书写的情报传递给自己同志时使用的接头方式。一个是描述消息的格式,一个是信息传递双方约定的方法。

JSON:

一种基于文本的数据交换方式,或者叫做数据描述格式。

优点:

1.基于纯文本,跨平台传递及其简单。

2.JavaScript原生支持,后台语言几乎全部支持。

3.轻量级数据格式,占用字符数量极少,特别适合互联网数据传递。

4.可读性强,容易编写和解析。

数据格式:

1.JSON只有两种数据类型描述符,大括号{ } 和 方括号 [ ];英文冒号 : 是映射符;英文逗号 , 是分隔符;英文双引号 " "是定义符。

2.大括号 { }用来描述一组 “不同类型的无序键值对集合” (每个键值对可以理解为OOP的属性描述), 方括号[ ]用来描述一组“相同类型的有序数据集合”(可对应OOP的数组)。

3.上述两种集合中若有多个子项,则通过英文逗号 , 进行分割。

4.键值对以英文冒号 : 进行分割,并且建议键名都加上英文双引号“ ”,以便于不同语言的解析。

5.JSON内部常用数据类型无非就是字符串、数字、布尔类型、日期、null这几个,字符串必须用双引号引起来,其余的都不用,日期类型比较特殊,这里就不展开讲述了,只是建议如果客户端没有按日期排序功能的需求的话,那么把日期时间直接作为字符串传递就好,可省很多麻烦。

实例:

描述一个人

var person = {

"name": "zhangsan",

"age":23,

"company":"MBA",

"engineer":true

}

获取这个人的信息 

var personAge = person.age;

描述多个人

var persons = [

 {

"name": "zhangsan",

"age":23,

"company":"MBA",

"engineer":true,

"birthday":"1988-03-05"

},

 {

"name": "lisi",

"age":26,

"company":"HUAWEI",

"engineer":true,

"birthday":"1968-08-25"

},

 {

"name": "huangsan",

"age":36,

"company":"MBA",

"engineer":false,

"birthday":"2001-06-18"

}

]

读取李四的年龄

var lisiAge = persons[1].age;


原创粉丝点击