前后端交互
在我们用电脑浏览网页或者是用手机app之类的平台时,时时刻刻伴随着请求和响应,我们点击一个链接,浏览器或者app会向服务器发送一个请求,服务器接收到这个请求的时候,会将一段数据通过响应的方式返回给客户端,客户端通过一系列对数据的处理和添加效果之类的操作,最终将数据展现在用户使用的平台上,这就是前端和后端的交互。
json的作用
一个信息丰富的网站页面,后端向前端返回的数据是海量的,假如我们把网站展示信息的区域分成很多块,我们当然希望这些块所需要的信息在尽可能短的时间内一次性从服务器返回回来,而不是一个块一个块地返回,这就好比一个人去上学,他会把上课所需要的所有书一起装进书包里带到学校而不是每次装一本书一趟趟地往学校带书。如果世界上所有网站返回数据文本的格式不同,就会造成网站开发领域的混乱,大大地增加开发的难度,因此,我们需要制订一个规则,大家从后端传回来的数据都按照这种规则去写,这种规则就是数据传递的格式。目前最常见最流行的数据传递格式就是json,之前大部分开发者用的是xml传递,但是后来有了json之后,发现json可以用更少的文本量表示数据,而且json可以方便的将json格式的数据转化为对象,方便了开发者的使用,因此,目前xml在网络数据传输方面的饭碗已经基本被json抢走了。知道了这些,json的重要性不言而喻,毕竟几乎所有网站都少不了从服务器读写数据,下面让我们来看看json的书写格式。
json格式
笔者用的是java开发,因此下面我们的代码都用java举例,还使用了javasript,json数据格式只是数据,与使用哪种开发语言无关,其它开发语言使用json大同小异。
json格式与面向对象有关,因此,如果没有面向对象基础的读者推荐先去学习一下面向对象思想。
json为了实现轻量化的目的,标记符都非常简单,像花括号,中括号,双引号,逗号这些,数据存储都以key:value格式,我们来写一个简单的json:
var a={
"name":"abc",
"age":"29",
"sex":"male"
};
这是一个再简单不过的json了,这样书写的json,定义了一个叫做name的key,值是abc(注意,这里值的双引号只是固定的书写格式,并不是代表value是字符串的意思),定义了一个叫做age的key,值是29,定义了一个叫做sex的key,值是male
这些key同时也可以当作是对象,例如:name是对象的名字,name对象的值是abc
那么我们想要取出对象就很简单了,因为我们用javascript定义的a也是一个对象,那么我们就可以这样来获取json数据:
a.name
也就是调用了a对象中的name对象,取出了它的值
alert(a.name);
alert(a.age);
alert(a.sex);
上述的代码将弹出三个提示框,上面分别写着abc ,29 , male
json数组
json也可以存储数组类型的,例如:
var b={["a1","a2","a3"]};
这就存储了一个数组
通过:
b[0],b[1],b[2]
可以取得数组中的值
json嵌套
json嵌套是json比较乱的一个点,弄懂了json嵌套就没有什么好说的了,其实,嵌套只是逻辑上不好接受,但是格式还是那个格式,举个例子就懂了,例如:
var c={
"people":{
"abc":{
"age":"30",
"sex":"male"
}
"def":{
"age":"40",
"sex":"female"
}
}
"cat":{
"color":{["blue","white","black"]}
}
}
我们来取得几个数据,看完你就懂了:
c.people;//取得people中的数据
c.people.abc;//取得abc中的数据
c.people.abc.age;//取得abc的age,也就是30
c.cat.color;//取得cat的color数组
c.cat.color[2];//取得black
看了这几个例子,是不是觉得嵌套也就这么简单?