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

2023-04-17 11:53 更新

本文將介紹JSON的基礎(chǔ)結(jié)構(gòu),包括鍵值對(duì)和數(shù)組,以及如何使用它們來表示數(shù)據(jù)。

JSON的兩種結(jié)構(gòu)

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

  1. 對(duì)象結(jié)構(gòu)(鍵值對(duì));
  2. 數(shù)組結(jié)構(gòu);

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

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

語(yǔ)法:

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

說明:

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

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

JSON數(shù)組結(jié)構(gòu)

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

語(yǔ)法:

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

說明:

arr指的是json數(shù)組。數(shù)組結(jié)構(gòu)是以“[”開始,到“]”結(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)真查看。

代碼片斷1

代碼如下:
{
     "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)換出來的JSON形式:

代碼片斷2

代碼如下:
{
    "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"
                }
            ]
        }
    }
}

看出來形式是不一致的。

只能來了解一下JSON的結(jié)構(gòu)形式。
JSON有兩種數(shù)據(jù):1.無(wú)序的對(duì)象結(jié)構(gòu);2.有序的數(shù)組結(jié)構(gòu)


1.無(wú)序的對(duì)象結(jié)構(gòu)
 無(wú)序的對(duì)象結(jié)構(gòu)在不同語(yǔ)言中稱法不同,比如在Python中稱為字典,在JS中稱為JSON對(duì)象……
 總之就是鍵/值對(duì)組合形式。
 剛才我轉(zhuǎn)換出來的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é)內(nèi)容中,我們一起來認(rèn)識(shí) JSON 數(shù)據(jù)格式!


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)