QT開發(六十一)———Json簡介

來源:互聯網
上載者:User

標籤:qt開發 json簡介

QT開發(六十一)———Json簡介一、JSON簡介 1、JSON簡介

    JSON(JavaScript Object Notation)是一種輕量級的資料交換格式,基於JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一個子集。 JSON採用完全獨立於語言的文字格式設定,使用了類C語言家族的習慣(包括C、C++、C#、Java、JavaScript、Perl、Python等)。

    JSON使用JavaScript文法來描述資料對象,但是JSON仍然獨立於語言和平台。JSON解析器和JSON庫支援許多不同的程式設計語言。

2、JSON文法

    JSON文法是JavaScript對象標記法文法的子集,文法規則如下:

    A、資料在名稱/值對中

    B、資料由逗號分隔

    C、花括弧儲存對象

    D、方括弧儲存數組

3、 JSON名稱/值對

    JSON 資料的書寫格式是:成對的名稱和數值。

    名稱/值對包括欄位名稱(在雙引號中),後面寫一個冒號,然後是值:

    "firstName" : "John"

4、 JSON值

    JSON值類型:

    數字(整數或浮點數)

    字串(在雙引號中)

    邏輯值(true或false)

    數組(在方括弧中)

    對象(在花括弧中)

    null

5、 JSON 對象

    JSON對象在花括弧中書寫:

    對象可以包含多個名稱/值對:

    { "firstName":"John" , "lastName":"Doe" }

6、 JSON 數組

    JSON數組在方括弧中書寫:

    數組可包含多個對象:

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


二、JSON基礎結構

    JSON結構有兩種結構:對象和數組。

1、 對象

    對象表示為“{}”括起來的內容,資料結構為 {key:value,key:value,...}的索引值對的結構。在物件導向的語言中,key為對象的屬性,value為對應的屬性值,擷取屬性值方法為:對象.key,屬性值的類型可以是數字、字串、數組、對象。

    {"firstName":"Brett"}

    {"firstName":"Brett","lastName":"McLaughlin","email":"[email protected]"}

    當多個"成對的名稱和數值"串在一起時,JSON更容易使用,且可讀性更好。當多個"成對的名稱和數值"明確地表示多個值都是同一記錄的一部分,花括弧使多個值間有了某種聯絡。

2、 數組

    數組表示為中括弧“[]”括起來的內容,資料結構為             ["java","javascript","vb",...],取值方式使用索引擷取,欄位值的類型可以是數字、字串、數組、對象。

    當需要表示一組值時,JSON不但能夠提高可讀性,而且可以減少複雜性。

    單個值的變數(包含多條記錄)如下:

{    "people":[        {"firstName":"Brett","lastName":"McLaughlin","email":"aaaa"},        {"firstName":"Jason","lastName":"Hunter","email":"bbbb"},        {"firstName":"Elliotte","lastName":"Harold","email":"cccc"}]}

    people變數,值是包含三個條目的數組,每個條目是一個人的記錄,其中包含名、姓和電子郵件地址。

    多個值的變數(每個值包含多個記錄)如下:

{    "programmers": [        {        "firstName": "Brett",        "lastName": "McLaughlin",        "email": "aaaa"        },         {        "firstName": "Jason",        "lastName": "Hunter",        "email": "bbbb"        },         {        "firstName": "Elliotte",        "lastName": "Harold",        "email": "cccc"        }],    "authors": [        {        "firstName": "Isaac",        "lastName": "Asimov",        "genre": "sciencefiction"        },         {        "firstName": "Tad",        "lastName": "Williams",        "genre": "fantasy"        },         {        "firstName": "Frank",        "lastName": "Peretti",        "genre": "christianfiction"        }],    "musicians": [        {        "firstName": "Eric",        "lastName": "Clapton",        "instrument": "guitar"        },         {        "firstName": "Sergei",        "lastName": "Rachmaninoff",        "instrument": "piano"        }]}


本文出自 “生命不息,奮鬥不止” 部落格,謝絕轉載!

QT開發(六十一)———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.