69pao国产精品视频-久久精品一区二区二三区-精品国产精品亚洲一本大道-99国产综合一区久久

JSON 基礎(chǔ)結(jié)構(gòu)

json 基礎(chǔ)結(jié)構(gòu)

什么是json?json 就是 javascript 用來(lái)處理數(shù)據(jù)的一種格式,這種格式非常簡(jiǎn)單易用。

json,大部分都是用來(lái)處理javascript和web服務(wù)器端之間的數(shù)據(jù)交換,把后臺(tái)web服務(wù)器的數(shù)據(jù)傳遞到前臺(tái),然后使用javascript進(jìn)行處理,例如ajax等。

json支持的語(yǔ)言非常多,包括javascript、c#、php、java等等,這是由于json獨(dú)立于語(yǔ)言的輕量級(jí)的數(shù)據(jù)交換格式,這個(gè)特點(diǎn)有點(diǎn)類似于sql語(yǔ)言。

 

1. json的兩種結(jié)構(gòu)

json結(jié)構(gòu)共有2種:

  • 對(duì)象結(jié)構(gòu);
  • 數(shù)組結(jié)構(gòu);

 

2. 對(duì)象結(jié)構(gòu)

對(duì)象結(jié)構(gòu)是使用大括號(hào)“{}”括起來(lái)的,大括號(hào)內(nèi)是由0個(gè)或多個(gè)用英文逗號(hào)分隔的“關(guān)鍵字:值”對(duì)(key:value)構(gòu)成的。

joson 對(duì)象機(jī)構(gòu)語(yǔ)法:

var jsonobj =
{
    "鍵名1":值1,
    "鍵名2":值2,
    ……
    "鍵名n":值n
}

說(shuō)明:

jsonobj指的是json對(duì)象。對(duì)象結(jié)構(gòu)是以“{”開(kāi)始,到“}”結(jié)束。其中“鍵名”和“值”之間用英文冒號(hào)構(gòu)成對(duì),兩個(gè)“鍵名:值”之間用英文逗號(hào)分隔。

注意,這里的鍵名是字符串,但是值可以是數(shù)值、字符串、對(duì)象、數(shù)組或邏輯true和false。

 

3. json數(shù)組結(jié)構(gòu)

json數(shù)組結(jié)構(gòu)是用中括號(hào)“[]”括起來(lái),中括號(hào)內(nèi)部由0個(gè)或多個(gè)以英文逗號(hào)“,”分隔的值列表組成。

語(yǔ)法:

var arr =
[
    {
        "鍵名1":值1,
        "鍵名2":值2
    },
    {
        "鍵名3":值3,
        "鍵名4":值4
    },
    ……
]

說(shuō)明:

arr指的是json數(shù)組。數(shù)組結(jié)構(gòu)是以“[”開(kāi)始,到“]”結(jié)束,這一點(diǎn)跟json對(duì)象不同。在json數(shù)組中,每一對(duì)“{}”相當(dāng)于一個(gè)json對(duì)象,大家看看像不像?而且語(yǔ)法都非常類似。

注意,這里的鍵名是字符串,但是值可以是數(shù)值、字符串、對(duì)象、數(shù)組或邏輯true和false。

對(duì)于json對(duì)象結(jié)構(gòu)和json數(shù)組結(jié)構(gòu)的讀取、寫入、修改、刪除和遍歷等操作請(qǐng)到相應(yīng)章節(jié)認(rèn)真查看。

{
    "button":[
    {    
        "type":"click",
        "name":"今日歌曲",
        "key":"v1001_today_music"
    },
    {
        "type":"click",
        "name":"歌手簡(jiǎn)介",
        "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()函數(shù),對(duì)一二維數(shù)組轉(zhuǎn)換成json形式,但轉(zhuǎn)換出來(lái)的json形式:

{
    "button": {
        "1": {
            "type": "click",
            "name": "今日歌曲",
            "key": "v1001_today_music"
        },
        "2": {
            "type": "click",
            "name": "歌手簡(jiǎn)介",
            "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"
                }
            ]
        }
    }
}

看出來(lái)形式是不一致的。
json有兩種數(shù)據(jù):無(wú)序的對(duì)象結(jié)構(gòu)、有序的數(shù)組結(jié)構(gòu)。

  • 1. 無(wú)序的對(duì)象結(jié)構(gòu)
      無(wú)序的對(duì)象結(jié)構(gòu)在不同語(yǔ)言中稱法不同,比如在python中稱為字典,在js中稱為json對(duì)象,總之就是鍵/值對(duì)組合形式。剛才我轉(zhuǎn)換出來(lái)的json結(jié)構(gòu)就是無(wú)序的鍵/值對(duì)組合
  • 2. 有序的數(shù)組結(jié)構(gòu)
      有序的的數(shù)組結(jié)構(gòu),即代碼片斷2所展示的結(jié)構(gòu)。將數(shù)組作為有序數(shù)組進(jìn)行轉(zhuǎn)換json,就可以得到有序的json數(shù)組結(jié)構(gòu)。

下一節(jié):json 數(shù)據(jù)格式

相關(guān)文章