JavaScript基礎筆記(十一)JSON

來源:互聯網
上載者:User

標籤:name   text   字串   lex   種類型   瀏覽器   fun   this   string   

JSON

關於JSON,最重要的一點是理解它是一種資料格式,不是程式設計語言。

一、文法

JSON 不支援變數、函數或對象執行個體,它就是一種表示結構化資料的格式,雖然與 JavaScript 中表示
資料的某些文法相同,但它並不局限於 JavaScript 的範疇。

JSON文法可以表示下列三種類型的值:

一)簡單值

使用與JavaScript相同的文法,可以在JSON中表示字串、數值、布爾值和null。但沒有undefined。

注意在表示字串時,只能使用雙引號。

二)對象

對象作為一種複雜的資料類型,表示的是一組無序的索引值對。每個索引值對中的值可以是簡單值,也可以是複雜資料類型的值。

//JavaScript對象var person = {    name: "Tom",    age :19};//與JS對象相比,JSON對象不同的地方://1.不能聲明變數;2.對象的屬性必須加雙引號;3.沒有末尾分號{    "name": "Jerry",    "age": "8",    "school": {        "name": "Nan Shan",        "location": "xx00"    }}
三)數組

數組也是一種複雜資料類型,表示一組有序的值的列表,可以通過數值索引來訪問其中
的值。數組的值也可以是任意類型——簡單值、對象或數組。

//JSON中的數組[22, "Hello", "king"]
[{"title": "Professional JavaScript","authors": ["Nicholas C. Zakas"],edition: 3,year: 2011},{"title": "Professional JavaScript","authors": ["Nicholas C. Zakas"],edition: 2,year: 2009},{"title": "Professional Ajax","authors": ["Nicholas C. Zakas","Jeremy McPeak","Joe Fawcett"],edition: 2,year: 2008}]
二、解析與序列化

可以把JSON資料結構解析為JavaScript對象。

一)JSON對象

早期瀏覽器使用eval()函數把JSON解析為JavaScript對象和數組。但使用eval()函數對JSON資料進行轉換存在一定風險,

因為可能會執行一些惡意代碼。所以,建議使用全域對象JSON。

JSON對象的兩個方法:

1)JSON.stringify():把JavaScript對象序列化為JSON字串。

2)JSON.parse與上面相反。

    var book = {        title: "JavaScript for xx",        authors: [‘Price‘, ‘Tom‘, "Alex"],        edition: 9,        year: 2200    };    var jsonText = JSON.stringify(book);    console.log(jsonText);    //{"title":"JavaScript for xx",    // "authors":["Price","Tom","Alex"],"edition":9,"year":2200}    var bookInfo = JSON.parse(jsonText);    console.log(bookInfo.authors);

在序列化 JavaScript 對象時,所有函數及原型成員都會被有意忽略,不體現在結果中。此外,值為
undefined 的任何屬性也都會被跳過。

3)toJSON()

    var book = {        title: "JavaScript for xx",        authors: [‘Price‘, ‘Tom‘, "Alex"],        edition: 9,        year: 2200,        toJSON: function () {            return this.title;        }    };    var jsonText = JSON.stringify(book);    console.log(jsonText); //"JavaScript for xx"

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.