JSON(一):基本文法,json基本文法

來源:互聯網
上載者:User

JSON(一):基本文法,json基本文法

    JSON 即 JavaScriptObject Natation,它是一種輕量級的資料交換格式,非常適合於伺服器與 JavaScript 的互動。JSON 也是基於純文字的資料格式。由於JSON 天生是為 JavaScript 準備的,因此,JSON 的資料格式非常簡單,您可以用 JSON 傳輸一個簡單的String,Number,Boolean,也可以傳輸一個數組,或者一個複雜的 Object 對象。

    接下來就從幾方面來初步瞭解一下JSON。

 

    類似 XML

  • JSON 是純文字
  • JSON 具有“自我描述性”(人類可讀)
  • JSON 具有層級結構(值中存在值)
  • JSON 可通過 JavaScript 進行解析
  • JSON 資料可使用 AJAX 進行傳輸

    相比 XML 的不同之處

  • 沒有結束標籤
  • 更短
  • 讀寫的速度更快
  • 能夠使用內建的 JavaScript eval() 方法進行解析
  • 使用數組
  • 不使用保留字

    為什麼使用 JSON?

        對於 AJAX 應用程式來說,JSON比XML 更快更易使用:

    使用 JSON

  • 讀取 JSON 字串
  • 用 eval() 處理 JSON 字串

    基本瞭解了JSON,接下來我們就再瞭解一下JSON是如何表示我們常見的資料類型:

 

    JSON 文法規則

        JSON文法是 JavaScript對象標記法文法的子集。

  • 資料在名稱/值對中
  • 資料由逗號分隔
  • 花括弧儲存對象
  • 方括弧儲存數組

    

    JSON 名稱/值對

    JSON 資料的書寫格式是:名稱/值對。名稱/值對包括欄位名稱(在雙引號中),後面寫一個冒號,然後是值:

"firstName" : "John"這很容易理解,等價於這條JavaScript語句:firstName = "John"

    

    JSON 值

    JSON 值可以是:

  • 數字(整數或浮點數)

    一個Number 可以根據整型或浮點數表示如下:這與絕大多數程式設計語言的表示方法一致,例如:12345(整數)和-3.9e10(浮點數)。


  • 字串(在雙引號中)

    用JSON 表示一個簡單的 String “ abc ”,其格式為:"abc"。除了字元 ",\,/ 和一些控制符(\b,\f,\n,\r,\t)需要編碼外,其他 Unicode字元可以直接輸出。


  • 邏輯值(true 或 false)

Boolean 類型表示為 true 或 false 。


  • 數組(在方括弧中)

    JSON 還可以表示一個數組對象,使用 [] 包含所有元素,每個元素用逗號分隔,元素可以是任意的 Value,例如,以下數組包含了一個 String,Number,Boolean和一個 null:

["abc",12345,false,null]


  • 對象(在花括弧中)

    Object 對象在 JSON 中是用 {} 包含一系列無序的 Key-Value 鍵值對錶示的,實際上此處的 Object相當於 Java中的 Map<String, Object>,而不是 Java的 Class。注意 Key只能用 String表示。

例如,一個Address 對象包含如下 Key-Value:city:Beijing  street:Chaoyang Road  postcode:100025(整數)

用JSON 表示如下:{"city":"Beijing","street":"Chaoyang Road ","postcode":100025}

    其中Value 也可以是另一個 Object 或者數組,因此,複雜的 Object 可以巢狀表格示,例如,一個 Person 對象包含 name 和 address對象,可以表示如下:{"name":"Michael","address":

   {"city":"Beijing","street":" ChaoyangRoad ","postcode":100025}
}


  • Null

    JavaScript中的 null 被表示為 null,注意,true、false 和 null 都沒有雙引號,否則將被視為一個 String。

 

    JSON 對象

    JSON 對象在花括弧中書寫:對象可以包含多個名稱/值對:{ "firstName":"John" ,"lastName":"Doe" }

    這一點也容易理解,與這條JavaScript 語句等價:firstName = "John" lastName = "Doe"

    JSON 數組

    JSON 數組在方括弧中書寫:數組可包含多個對象:

    {
    "employees": 

    [
    { "firstName":"John" , "lastName":"Doe"},
    { "firstName":"Anna" ,"lastName":"Smith" },
    { "firstName":"Peter" ,"lastName":"Jones" }
    ]
    }

    在上面的例子中,對象"employees" 是包含三個對象的數組。每個對象代表一條關於某人(有姓和名)的記錄。

    需要注意的是:因為 JSON 使用JavaScript文法,所以無需額外的軟體就能處理 JavaScript中的 JSON。通過JavaScript,您可以建立一個對象數組,並像這樣進行賦值:

    var employees = [
    { "firstName":"Bill" ,"lastName":"Gates" },
    { "firstName":"George" ,"lastName":"Bush" },
    { "firstName":"Thomas" , "lastName":"Carter" }
    ];

    可以像這樣訪問JavaScript 對象數組中的第一項:employees[0].lastName; 返回的內容是:Gates。也可以像這樣修改資料:employees[0].lastName = "Jobs";

 

    現在大致瞭解了JSON的基本文法,接下來的博文會和大家一起學習如何在伺服器端產生 JSON格式的資料以便發送到用戶端,以及用戶端如何使用 JavaScript 處理 JSON 格式的資料。

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.