歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> JSON不是JavaScript對象

JSON不是JavaScript對象

日期:2017/3/1 9:38:24   编辑:Linux編程

很多人都把JSON當作JavaScript對象,但它根本不是。JSON只是一種靈感來自JavaScript對象結構的字符串表示法。JSON被設計得簡單松散,用來在服務器和浏覽器之間傳輸數據。因為它的簡潔性,也在浏覽器和服務器之外的其他應用中被使用。

我嘗試拷貝一些JavaScript對象並發送到基於JSON的書簽Web服務器,但是它不工作。為什麼?看看我要發送的JavaScript對象。

{
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框架發送),這表明我發送的不是合法的JSON。為找到原因,我去讀了Douglas Crockford寫的JSON spec 之後終於明白了:

  1. 所有的鍵都應該用雙引號包裹
  2. JSON不支持注釋
  3. JSON的值不能是函數或者undefined,一個值可以是雙引號包裹的字符串,或者是數字,true,false,null,或者一個對象或者數組。上述成員可以嵌套在一起。
  4. JSON的最後一個值後面不能有逗號","

我把它改成正確格式:

{
"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。

Happy coding and Have a nice day.

--------------------------------------分割線 --------------------------------------

Struts中異步傳送XML和JSON類型的數據 http://www.linuxidc.com/Linux/2013-08/88247.htm

Linux下JSON庫的編譯及代碼測試 http://www.linuxidc.com/Linux/2013-03/81607.htm

jQuery 獲取JSON數據[$.getJSON方法] http://www.linuxidc.com/Linux/2013-03/81673.htm

用jQuery以及JSON包將表單數據轉為JSON字符串 http://www.linuxidc.com/Linux/2013-01/77560.htm

在C語言中解析JSON配置文件 http://www.linuxidc.com/Linux/2014-05/101822.htm

--------------------------------------分割線 --------------------------------------

Copyright © Linux教程網 All Rights Reserved