JSON資料格式

來源:互聯網
上載者:User

前言

作為一個前端需要掌握一種資料格式:json資料格式。在和伺服器互動時,伺服器會返回一組json資料,前端需要處理這組資料,並選擇性地將所需資料呈現在用戶端。在json還沒誕生前,互連網上傳輸結構化資料的方式是交給XML來完成的,那時候不少人認為XML過於繁瑣、冗長,希望能有另一種資料格式可以替代XML。

什麼是JSON

一句話:JSON就是(JavaScript Object Notation),它是一種輕量級的資料交換格式。

以下的語句就是JSON

 {   "name":"bingkingboy",   "age":25 }{ "first":{   "name":"bingkingboy",   "age":25 },  "second":{    "name":"feifei",    "age":20  }}

工欲善其事必先利其器,要想瞭解JSON就必須知道它的文法,才能更好的學習它。

JSON的基本文法

JSON的四個基本規則: 並列的資料之間用逗號(“, “)分隔。 映射用冒號(“: “)表示。 並列資料的集合(數組)用方括弧(“[]”)表示。 映射的集合(對象)用大括弧(“{}”)表示。

知道了JSON的基本規則,就可以很容易的構建JSON資料格式

解析和序列化

JSON之所以流行,擁有與JavaScript類似的文法並不是全部原因,更重要的一個原因是,可以把JSON資料結構解析為有用的JavaScript對象。

JavaScript解析和序列化JSON的方法

evel()
早期的JSON解析器上基本就是使用JavaScript的evel()的函數,不過在使用evel()對JSON資料結構求值存在風險,因為可能會執行一些惡意代碼,使用時需謹慎。

stringify() 把JavaScript對象序列化為JSON字串
JSON.stringify()除了要序列化的JavaScript對象外,還可以接收另外兩個選擇性參數,這兩個參數用於指定以不同方式序列化JavaScript對象。第一個參數是個過濾器,可以是數組,也可以是函數;第二個參數是一個選項,表示是否在JSON字串中保留縮排。

    var book = {        "title":"woaiwojia",        "authors":["weiwei","kuakua"],        "year":2010    }    var jsonText1 = JSON.stringify(book);    var jsonText2 = JSON.stringify(book,["title","year"]);    console.log(jsonText1);    console.log(jsonText2);    {"title":"woaiwojia","authors":["weiwei","kuakua"],"year":2010}    test5.html:17 {"title":"woaiwojia","year":2010}
parse()
把JSON字串解析為原生JavaScript值,JSON.parse()方法和JSON.stringify()剛好相反,不做舉例。

JSON的優劣

優點: 格式比較簡單,易於讀寫,格式都是壓縮的,佔用頻寬小。 支援多種語言,包括ActionScript, C, C#, ColdFusion, Java, JavaScript, Prel,
PHP, Python, Ruby等伺服器端語言,便於伺服器端的解析。

缺點: 要求字元集必須是Unicode,受約束性強。 文法過於嚴謹,必須遵守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.