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 對象的代碼相同。因爲這種類似性,無需解析器,JavaScript 程序可以使用內建的 eval() 函數,用 JSON 數據來生成原生的 JavaScript 對象。app
與 XML 相同之處編程語言
與 XML 不一樣之處函數
對於 AJAX 應用程序來講,JSON 比 XML 更快更易使用:網站
如下是一個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 語法是 JavaScript 對象表示法語法的子集。spa
JSON 數據的書寫格式是:名稱/值對,包括字段名稱(在雙引號中),後面寫一個冒號,而後是值: "firstName" : "John"
這很容易理解,等價於這條 JavaScript 語句: firstName = "John"
JSON 值能夠是:
JSON 對象在花括號中書寫,對象能夠包含多個名稱/值對:
{
"firstName":"John" ,
"lastName":"Doe"
}
這一點也容易理解,與這條 JavaScript 語句等價:firstName = "John" lastName = "Doe"
JSON 數組在方括號中書寫,數組可包含多個對象:
//對象 "employees" 是包含三個對象的數組。每一個對象表明一條關於某人(有姓和名)的記錄。
{
"employees": [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
]
}
由於 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";