理解JSON的語法


JSON語法可以分為三種類型:

簡單值

對象

數組

簡單值:

5
"Hello World"

JavaScript字符串與JSON字符串的最大區別在於,JSON字符串必須使用雙引號

對象:

JSON中的對象與JavaScript字面量稍微有一些不同。下面是一個JavaScript中的對象字面量

var person={
            name:"Qianwei",
            age:22
}

這雖然是開發人員在JavaScript中創建對象字面量的標准方式,但JSON中的對象要求給屬性加引號。

{
            "name":"Qianwei",
            "age":22
}

與JavaScript的對象字面量相比,JSON對象有兩個地方不一樣。首先,沒有申明變量(JSOn中沒有變量的概念)。其次,沒有末尾的分號(因為這不是JavaScript語句,所以不需要分號)。再說一遍,對象的屬性必須加引號,這在JSON中是必須的。屬性的值可以是簡單值,也已是復雜類型值。

{
    "name": "Qianwei",
    "age": 22,
    "school": {
        "name": "anqing",
        "lOaction": "Anqing"
    }
}

這個例子在頂級對象中嵌入了學校信息。雖然有兩個“name”屬性,但是是不一樣的。

數組:

JSON中的第二種復雜數據類型是數組。JSON數組采用的就是JavaScript中的數組字面量形式:

var value = [25,"hi",true]

在JSON中,可以采用同樣的語法表示同一個數組:

[{
        "title": "Pro",
        "author": "Qianwe",
        "edition": 3,
        "year": 2100
    },
    {
        "title": "Pro",
        "author": "Qianwe",
        "edition": 4,
        "year": 2100
    },
    {
        "title": "Pro",
        "author": "Qianwe",
        "edition": 2,
        "year": 2100
    }
]

解析和序列化:

可以把JSON數據結構解析為有用的JavaScript對象。

[{
        "title": "Pro",
        "author": "Qianwe",
        "edition": 3,
        "year": 2100
    },
    {
        "title": "Pro1",
        "author": "Qianwe",
        "edition": 4,
        "year": 2100
    },
    {
        "title": "Pro2",
        "author": "Qianwe",
        "edition": 2,
        "year": 2100
    }
]

------------------------------------------------------------
books[2].title                //pro2

JSON對象:

JSON對象有兩個方法:stringify()和parse()。在最簡單的情況下,這兩個方法分別用於把JavaScript對象序列化為JSON字符串和把JSON字符串解析為原生的JavaScript值。

    var books = {
        "title": "Pro",
        "author": "Qianwe",
        "edition": 4,
        "year": 2100
    };

    var jsonText = JSON.stringify(books);

    console.log(jsonText)       //{"title":"Pro","author":"Qianwe","edition":4,"year":2100}
    console.log(typeof jsonText)        //string
var books = {
        "title": "Pro",
        "author": "Qianwe",
        "edition": 4,
        "year": 2100
    };

    var jsonText = JSON.stringify(books);

    console.log(jsonText) //{"title":"Pro","author":"Qianwe","edition":4,"year":2100}
    console.log(typeof jsonText) //string

    var parseText = JSON.parse(jsonText);
    console.log(parseText)
        /*
        {title: "Pro", author: "Qianwe", edition: 4, year: 2100}
            author
            :
            "Qianwe"
            edition
            :
            4
            title
            :
            "Pro"
            year
            :
            2100
            __proto__
            :
            Object
        */
    console.log(typeof parseText) //object

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM