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数组结构。

下一章:JSON 数据格式

json格式采用key:value的方式记录数据,非常直观,比XML简洁,因而大受欢迎。1. 添加JSON:在使用名称/值对或XML时,实际上是使用JavaScript从应用程序中取得数据并将数据转换成另一种数据格式。在这些情况下,JavaScript在很大程度上作为一种数据操纵语言,用来移动和操纵来自Web表单的数据,并将数据转换为一种适合发送给服务器端程序的格式。