json 基础结构
什么是json?json 就是 javascript 用来处理数据的一种格式,这种格式非常简单易用。
json,大部分都是用来处理javascript和web服务器端之间的数据交换,把后台web服务器的数据传递到前台,然后使用javascript进行处理,例如ajax等。
json支持的语言非常多,包括javascript、c#、php、java等等,这是由于json独立于语言的轻量级的数据交换格式,这个特点有点类似于sql语言。
1. json的两种结构
json结构共有2种:
- 对象结构;
- 数组结构;
2. 对象结构
对象结构是使用大括号“{}”括起来的,大括号内是由0个或多个用英文逗号分隔的“关键字:值”对(key:value)构成的。
joson 对象机构语法:
var jsonobj =
{
"键名1":值1,
"键名2":值2,
……
"键名n":值n
} 说明:
jsonobj指的是json对象。对象结构是以“{”开始,到“}”结束。其中“键名”和“值”之间用英文冒号构成对,两个“键名:值”之间用英文逗号分隔。
注意,这里的键名是字符串,但是值可以是数值、字符串、对象、数组或逻辑true和false。
3. json数组结构
json数组结构是用中括号“[]”括起来,中括号内部由0个或多个以英文逗号“,”分隔的值列表组成。
语法:
var arr =
[
{
"键名1":值1,
"键名2":值2
},
{
"键名3":值3,
"键名4":值4
},
……
] 说明:
arr指的是json数组。数组结构是以“[”开始,到“]”结束,这一点跟json对象不同。在json数组中,每一对“{}”相当于一个json对象,大家看看像不像?而且语法都非常类似。
注意,这里的键名是字符串,但是值可以是数值、字符串、对象、数组或逻辑true和false。
对于json对象结构和json数组结构的读取、写入、修改、删除和遍历等操作请到相应章节认真查看。
{
"button":[
{
"type":"click",
"name":"今日歌曲",
"key":"v1001_today_music"
},
{
"type":"click",
"name":"歌手简介",
"key":"v1001_today_singer"
},
{
"name":"菜单",
"sub_button":[
{
"type":"view",
"name":"搜索",
"url":"http://www.soso.com/"
},
{
"type":"view",
"name":"视频",
"url":"http://v.qq.com/"
},
{
"type":"click",
"name":"赞一下我们",
"key":"v1001_good"
}]
}]
} 然后用php的json_encode()函数,对一二维数组转换成json形式,但转换出来的json形式:
{
"button": {
"1": {
"type": "click",
"name": "今日歌曲",
"key": "v1001_today_music"
},
"2": {
"type": "click",
"name": "歌手简介",
"key": "v1001_today_singer"
},
"3": {
"name": "菜单",
"sub_button": [
{
"type": "view",
"name": "搜索",
"url": "http://www.soso.com/"
},
{
"type": "view",
"name": "视频",
"url": "http://v.qq.com/"
},
{
"type": "click",
"name": "赞一下我们",
"key": "v1001_good"
}
]
}
}
} 看出来形式是不一致的。
json有两种数据:无序的对象结构、有序的数组结构。
- 1. 无序的对象结构
无序的对象结构在不同语言中称法不同,比如在python中称为字典,在js中称为json对象,总之就是键/值对组合形式。刚才我转换出来的json结构就是无序的键/值对组合 - 2. 有序的数组结构
有序的的数组结构,即代码片断2所展示的结构。将数组作为有序数组进行转换json,就可以得到有序的json数组结构。


