1. 程式人生 > 其它 >微控制器串列埠通訊

微控制器串列埠通訊

JSON學習筆記

Web學習筆記之——Json


什麼是JSON

JSON: JavaScript Object Notation(JavaScript 物件表示法)

JSON 是輕量級的文字資料交換格式 JSON 獨立於語言 * JSON 具有自我描述性,更易理解

JSON 使用 Javascript語法來描述資料物件,但是 JSON 仍然獨立於語言和平臺。JSON 解析器和 JSON 庫支援許多不同的程式語言。 目前非常多的動態(PHP,JSP,.NET)程式語言都支援JSON。

優點:

  • JSON 是儲存和交換文字資訊的語法。類似 XML。
  • JSON 比 XML 更小、更快,更易解析。

與 XML 相同之處

  • JSON 是純文字
  • JSON 具有”自我描述性”(人類可讀)
  • JSON 具有層級結構(值中存在值)
  • JSON 可通過 JavaScript進行解析
  • JSON 資料可使用 AJAX 進行傳輸

與 XML 不同之處

  • 沒有結束標籤
  • 更短
  • 讀寫的速度更快
  • 能夠使用內建的 JavaScript eval() 方法進行解析
  • 使用陣列
  • 不使用保留字

為什麼使用 JSON?

對於 AJAX 應用程式來說,JSON 比 XML 更快更易使用:

使用 XML

  1. 讀取 XML 文件
  2. 使用 XML DOM 來迴圈遍歷文件
  3. 讀取值並存儲在變數中

使用 JSON

  1. 讀取 JSON 字串
  2. 用 eval() 處理 JSON 字串

JSON 例項

簡單例項

這個 sites 物件是包含 3 個站點記錄(物件)的陣列。

{
"sites": [
{ "name":"Derwer" , "url":"www.derwer.com" }, 
{ "name":"google" , "url":"www.google.com" }, 
{ "name":"百度" , "url":"www.baidu.com" }
]
}

web例項

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JSON-Web例項</title>
</head>
<body>
<h2>JavaScript 建立 JSON 物件</h2>
<p>
網站名稱: <span id="jname"></span><br /> 
網站地址: <span id="jurl"></span><br /> 
網站標語: <span id="jslogan"></span><br /> 
</p>
<script>
var JSONObject= {
	"name":"Derwer",
	"url":"www.derwer.com", 
	"slogan":"理想 哲思 白日夢!"
};
document.getElementById("jname").innerHTML=JSONObject.name 
document.getElementById("jurl").innerHTML=JSONObject.url 
document.getElementById("jslogan").innerHTML=JSONObject.slogan 
</script>

</body>
</html>

JSON語法

JSON 語法是 JavaScript 語法的子集。

JSON 語法規則

JSON 語法是 JavaScript 物件表示法語法的子集。

  • 資料在名稱/值對中
  • 資料由逗號分隔
  • 花括號儲存物件
  • 方括號儲存陣列

JSON 名稱/值對

JSON 資料的書寫格式是:名稱/值對。 名稱/值對包括欄位名稱(在雙引號中),後面寫一個冒號,然後是值:

"UserId" : "Raphael"

這很容易理解,等價於這條 JavaScript 語句:

UserId = "Raphael"

JSON 值

JSON 值可以是:

  • 數字(整數或浮點數)
  • 字串(在雙引號中)
  • 邏輯值(true 或 false)
  • 陣列(在方括號中)
  • 物件(在花括號中)
  • null

JSON 物件

JSON 物件在花括號中書寫: 物件可以包含多個名稱/值對:

{ "WebName":"Derwer" , "url":"www.derwer.com" }

這一點也容易理解,與這條 JavaScript 語句等價:

WebName = "Derwer"
url = "www.derwer.com"

JSON 陣列

JSON 陣列在方括號中書寫: 陣列可包含多個物件:

{
"sites": [
    { "name":"Derwer" , "url":"www.derwer.com" }, 
    { "name":"google" , "url":"www.google.com" }, 
    { "name":"百度" , "url":"www.baidu.com" }
]
}

上述例子中,物件 “sites” 是包含三個物件的陣列。每個物件代表一條站點(資訊)的記錄。

JSON 使用 JavaScript 語法

因為 JSON 使用 JavaScript 語法,所以無需額外的軟體就能處理 JavaScript 中的 JSON。 通過 JavaScript,您可以建立一個物件陣列,並像這樣進行賦值: 例項

var sites =  [
    { "name":"Derwer" , "url":"www.derwer.com" }, 
    { "name":"google" , "url":"www.google.com" }, 
    { "name":"百度" , "url":"www.baidu.com" }
];

可以像這樣訪問 JavaScript 物件陣列中的第一項(索引從 0 開始):

sites[0].name;

返回的內容是:

Derwer

可以像這樣修改資料: sites[0].name=”Derwer | 世界就在你眼前”;

JSON 檔案

JSON 檔案的檔案型別是 “.json” JSON 文字的 MIME 型別是 “application/json”