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

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

1、JSON簡介

1JSON簡介

    JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,基於JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一個子集。 JSON採用徹底獨立於語言的文本格式,使用了類C語言家族的習慣(包括C、C++、C#、JavaJavaScript、Perl、Python等)。javascript

    JSON使用JavaScript語法來描述數據對象,可是JSON仍然獨立於語言和平臺。JSON解析器和JSON庫支持許多不一樣的編程語言。java

二、JSON語法

    JSON語法是JavaScript對象表示法語法的子集,語法規則以下:編程

    A、數據在名稱/值對中數組

    B、數據由逗號分隔數據結構

    C、花括號保存對象編程語言

    D、方括號保存數組ide

3JSON名稱/值對

    JSON 數據的書寫格式是:名稱/值對。ui

    名稱/值對包括字段名稱(在雙引號中),後面寫一個冒號,而後是值:spa

    "firstName" : "John"對象

4JSON

    JSON值類型:

    數字(整數或浮點數)

    字符串(在雙引號中)

    邏輯值(true或false)

    數組(在方括號中)

    對象(在花括號中)

    null

5JSON 對象

    JSON對象在花括號中書寫:

    對象能夠包含多個名稱/值對:

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

6JSON 數組

    JSON數組在方括號中書寫:

    數組可包含多個對象:

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


2、JSON基礎結構

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

1對象

    對象表示爲「{}」括起來的內容,數據結構爲 {key:value,key:value,...}的鍵值對的結構。在面向對象的語言中,key爲對象的屬性,value爲對應的屬性值,獲取屬性值方法爲:對象.key,屬性值的類型能夠是數字、字符串、數組、對象。

    {"firstName":"Brett"}

    {"firstName":"Brett","lastName":"McLaughlin","email":"scorpio@hotmai.com"}

    當多個"名稱/值對"串在一塊兒時,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"
        }]
}
相關文章
相關標籤/搜索