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";