json01-json簡介和語法

 

JSON: JavaScript Object Notation(JavaScript 對象表示法)html

JSON 是存儲和交換文本信息的語法。相似 XML,但比 XML 更小、更快,更易解析,是輕量級的文本數據交換格式,獨立於語言,具備自我描述性,更易理解。 編程

JSON 使用 Javascript語法來描述數據對象,可是 JSON 仍然獨立於語言和平臺。JSON 解析器和 JSON 庫支持許多不一樣的編程語言。 目前很是多的動態(PHP,JSP,.NET)編程語言都支持JSON。json

json數據格式以下:數組

//employee 對象是包含 3 個員工記錄(對象)的數組
{
    "employees": [ 
        { "firstName":"John" , "lastName":"Doe" }, 
        { "firstName":"Anna" , "lastName":"Smith" }, 
        { "firstName":"Peter" , "lastName":"Jones" }
    ]
}       

JSON - 轉換爲 JavaScript 對象

JSON 文本格式在語法上與建立 JavaScript 對象的代碼相同。因爲這種類似性,無需解析器,JavaScript 程序可以使用內建的 eval() 函數,用 JSON 數據來生成原生的 JavaScript 對象。app

與 XML 相同之處編程語言

  • JSON 是純文本
  • JSON 具備"自我描述性"(人類可讀)
  • JSON 具備層級結構(值中存在值)
  • JSON 可經過 JavaScript 進行解析
  • JSON 數據可以使用 AJAX 進行傳輸

與 XML 不一樣之處函數

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

對於 AJAX 應用程序來講,JSON 比 XML 更快更易使用:網站

使用 XML

  • 讀取 XML 文檔
  • 使用 XML DOM 來循環遍歷文檔
  • 讀取值並存儲在變量中

使用 JSON

  • 讀取 JSON 字符串
  • 用 eval() 處理 JSON 字符串

如下是一個json小栗子:url

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鳥教程(runoob.com)</title>
</head>
<body>
<h2>JavaScript 建立 JSON 對象</h2>
<p>
網站名稱: <span id="jname"></span><br /> 
網站地址: <span id="jurl"></span><br /> 
網站 slogan: <span id="jslogan"></span><br /> 
</p>
<script>
var JSONObject= { "name":"菜鳥教程", "url":"www.runoob.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 對象表示法語法的子集。spa

  • 數據在名稱/值對中
  • 數據由逗號分隔
  • 花括號保存對象
  • 方括號保存數組

JSON 名稱/值對

JSON 數據的書寫格式是:名稱/值對,包括字段名稱(在雙引號中),後面寫一個冒號,而後是值:   "firstName" : "John"

這很容易理解,等價於這條 JavaScript 語句:   firstName = "John"

JSON 值

JSON 值能夠是:

  • 數字(整數或浮點數)
  • 字符串(在雙引號中)
  • 邏輯值(true 或 false)
  • 數組(在方括號中)
  • 對象(在花括號中)
  • null

JSON 對象

JSON 對象在花括號中書寫,對象能夠包含多個名稱/值對:

{

  "firstName":"John" ,

  "lastName":"Doe"

}

這一點也容易理解,與這條 JavaScript 語句等價:firstName = "John"   lastName = "Doe"

JSON 數組

JSON 數組在方括號中書寫,數組可包含多個對象:

//對象 "employees" 是包含三個對象的數組。每一個對象表明一條關於某人(有姓和名)的記錄。
{
  "employees": [
    { "firstName":"John" , "lastName":"Doe" }, 
    { "firstName":"Anna" , "lastName":"Smith" }, 
    { "firstName":"Peter" , "lastName":"Jones" }
  ]
}

JSON 使用 JavaScript 語法

由於 JSON 使用 JavaScript 語法,因此能夠直接處理 JavaScript 中的 JSON。經過 JavaScript能夠建立一個對象數組,進行賦值:

var employees = [
    { "firstName":"John" , "lastName":"Doe" }, 
    { "firstName":"Anna" , "lastName":"Smith" }, 
    { "firstName":"Peter" , "lastName": "Jones" }
];

訪問 JavaScript 對象數組中的第一項:employees[0].lastName;

修改數據:employees[0].firstName = "Jonatan";

JSON 文件

  • JSON 文件的文件類型是 ".json"
  • JSON 文本的 MIME 類型是 "application/json" 
相關文章
相關標籤/搜索