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

2023-04-17 11:53 更新

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

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

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

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

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

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

語法:

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

說明:

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

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

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

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

語法:

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

說明:

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

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

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

代碼片斷1

代碼如下:
{
     "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()函數(shù),對一二維數(shù)組轉(zhuǎn)換成JSON形式
 但轉(zhuǎn)換出來的JSON形式:

代碼片斷2

代碼如下:
{
    "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的結(jié)構(gòu)形式。
JSON有兩種數(shù)據(jù):1.無序的對象結(jié)構(gòu);2.有序的數(shù)組結(jié)構(gòu)


1.無序的對象結(jié)構(gòu)
 無序的對象結(jié)構(gòu)在不同語言中稱法不同,比如在Python中稱為字典,在JS中稱為JSON對象……
 總之就是鍵/值對組合形式。
 剛才我轉(zhuǎn)換出來的JSON結(jié)構(gòu)就是無序的鍵/值對組合


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)識 JSON 數(shù)據(jù)格式!


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號