JS 中的 JSON

來源:互聯網
上載者:User

標籤:school   序列   簡單   class   程式設計語言   color   ber   span   name   

JSON是JavaScript Object Notation的縮寫,它是一種資料交換格式。

在JSON出現之前,大家一直用XML來傳遞資料。因為XML是一種純文字格式,所以它適合在網路上交換資料。XML本身不算複雜,但是,加上DTD、XSD、XPath、XSLT等一大堆複雜的規範以後,任何正常的軟體開發人員碰到XML都會感覺頭大了,最後大家發現,即使你努力鑽研幾個月,也未必搞得清楚XML的規範。

終於,在2002年的一天,道格拉斯·克羅克福特(Douglas Crockford)同學為了拯救深陷水深火熱同時又被某幾個巨型軟體企業長期愚弄的軟體工程師,發明了JSON這種超輕量級的資料交換格式。

道格拉斯同學長期擔任雅虎的進階架構師,自然鐘情於JavaScript。他設計的JSON實際上是JavaScript的一個子集。在JSON中,一共就這麼幾種資料類型:

  • number:和JavaScript的number完全一致;
  • boolean:就是JavaScript的truefalse
  • string:就是JavaScript的string
  • null:就是JavaScript的null
  • array:就是JavaScript的Array表示方式——[]
  • object:就是JavaScript的{ ... }表示方式。

以及上面的任意組合。

並且,JSON還定死了字元集必須是UTF-8,表示多語言就沒有問題了。為了統一解析,JSON的字串規定必須用雙引號"",Object的鍵也必須用雙引號""

由於JSON非常簡單,很快就風靡Web世界,並且成為ECMA標準。幾乎所有程式設計語言都有解析JSON的庫,而在JavaScript中,我們可以直接使用JSON,因為JavaScript內建了JSON的解析。

把任何JavaScript對象變成JSON,就是把這個對象序列化成一個JSON格式的字串,這樣才能夠通過網路傳遞給其他電腦。

如果我們收到一個JSON格式的字串,只需要把它還原序列化成一個JavaScript對象,就可以在JavaScript中直接使用這個對象了。

序列化

讓我們先把小明這個對象序列化成JSON格式的字串: 

 1 var xiaoming = { 2     name: ‘小明‘, 3     age: 14, 4     gender: true, 5     height: 1.65, 6     grade: null, 7     ‘middle-school‘: ‘\"W3C\" Middle School‘, 8     skills: [‘JavaScript‘, ‘Java‘, ‘Python‘, ‘Lisp‘] 9 };10 11 JSON.stringify(xiaoming); // ‘{"name":"小明","age":14,"gender":true,"height":1.65,"grade":null,"middle-school":"\"W3C\" Middle School","skills":["JavaScript","Java","Python","Lisp"]}‘ 

要輸出得好看一些,可以加上參數,按縮排輸出:

1 JSON.stringify(xiaoming, null, ‘  ‘); 

結果:

 1 { 2   "name": "小明", 3   "age": 14, 4   "gender": true, 5   "height": 1.65, 6   "grade": null, 7   "middle-school": "\"W3C\" Middle School", 8   "skills": [ 9    "JavaScript",10    "Java",11    "Python",12    "Lisp"13   ]14 } 

第二個參數用於控制如何篩選對象的索引值,如果我們只想輸出指定的屬性,可以傳入Array: 

 

JS 中的 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.