JSON不等於JavaScript對象

不少人將JSON當作是JavaScript對象。其實JSON是一種字符串的表示方法,這種表示受到了JavaScript對象結構的啓發而已。設計JSON的用意是方便服務器和瀏覽器交換數據。因爲JSON的簡單性,在瀏覽器、服務器以外的領域也有普遍的應用。javascript

json

我嘗試複製一些JavaScript對象,而後將它們發送到一個基於JSON的書籤站點。可是它不能工做,爲何?讓咱們檢查一下我嘗試發送的JavaScript對象:html

{
    name : "why this kolaveri di",
    url  : "http://www.youtube.com/watch?v=YR12Z8f1Dh8",
    singer: "Dhanush",
    movie: "3",
    music : "Anirudh Ravichandran",
    views : 10000000,
    // Adding this for testing purpose
    play : function() { },
}

服務器返回的錯誤信息是Unexpected token n(服務器使用NodeJS和Express框架搭建),這意味着上面的JavaScript對象不是合法的JSON。我閱讀了Douglas Crockford的JSON說明,而後注意到了這些規定:java

  1. 全部的鍵必須用雙引號包裹
  2. JSON不支持註釋
  3. JSON的值不得爲函數,不得未定義。值能夠是用雙引號包裹的字符串,或是數字,或true、false,或null,或一個對象、數組。容許嵌套結構。
  4. JSON的最後一個值不使用,分隔符。

因此我上面的代碼須要修改爲web

{
    "name" : "why this kolaveri di",
    "url"  : "http://www.youtube.com/watch?v=YR12Z8f1Dh8",
    "singer": "Dhanush",
    "movie": "3",
    "views" : 10000000,
    "music" : "Anirudh Ravichandran"
}

我以爲,學習JSON標記是很重要的,由於web開發中的大量配置文件(package.json、bower.json)是JSON格式。每一個web開發者都應該瞭解JSON。json


原文 JSON is not Javascript Object
翻譯 SegmentFaultsegmentfault

相關文章
相關標籤/搜索