JSON-简介
- JSON是纯文本
- JSON具有"自我描述性’’
- JSON具有层级结构
- 可以直接通过JavaScript进行解析
- JSON数据可使用AJAX进行传输
对于AJAX应用程序来说,JSON比XML更快且更易于使用~
JSON语法
JSON的语法是JavaScript语法的子集
JSON的语法规则
JSON语法是JavaScript对象表示语法的子集
- 数据在 名称/值 对中
- 数据由逗号分隔
- 大括号保存对象
- 中括号保存数组
JSON名称/值对
名称/值对 包括 字段名称(在双引号中),后面写冒号,然后是值
"name":"13212"
等价于
name = "13212"
JSON值
- 数字(整数或者浮点数)
- 字符串(在双引号中)
- 逻辑值(true 或 false)
- 数组(在中括号中)
- 对象(在大括号中)
- null
JSON数字
{"age":30}
JSON对象
JSON对象在大括号({})中书写:
一个对象可以包含多个 名称/值对:
{"name":"123","url":"www.baidu.com"}
容易理解,这条就等价于JavaScript的
name = "123"
url = "www.baidu.com"
JSON数组
JSON数组在中括号中书写:
数组可以包含多个对象
{
"sites":[
{"name":"123","url":"www.baidu.com"},
{"name":"312","url":"www.baidu.com"},
{"name":"789","url":"www.baidu.com"}
]
}
对象sites 包含三个对象的数组,每个对象代表着(name、url)的记录
JSON布尔值
JSON布尔值是 true 或者 false
{"flage":true}
JSON null
JSON 可以设置null 值
{"runoob":null}
JSON使用JavaScript语法
因为 JSON 使用 JavaScript 语法,所以无需额外的软件就能处理 JavaScript 中的 JSON。
通过 JavaScript,您可以创建一个对象数组,并像这样进行赋值:
var sites = [
{ "name":"runoob" , "url":"www.runoob.com" },
{ "name":"google" , "url":"www.google.com" },
{ "name":"微博" , "url":"www.weibo.com" }
];
访问 对象数组的第一项
sites[0].name;
修改数据可写成
sites[0].name = "321";
JSON 和 XML 的差别
JSON 与 XML 的相同之处:
- JSON 和 XML 数据都是 “自我描述” ,都易于理解。
- JSON 和 XML 数据都是有层次的结构
- JSON 和 XML 数据可以被大多数编程语言使用
JSON 与 XML 的不同之处:
- JSON 不需要结束标签
- JSON 更加简短
- JSON 读写速度更快
- JSON 可以使用数组
最大的不同是:XML 需要使用 XML 解析器来解析,JSON 可以使用标准的 JavaScript 函数来解析。
- JSON.parse(): 将一个 JSON 字符串转换为 JavaScript 对象。
- JSON.stringify(): 于将 JavaScript 值转换为 JSON 字符串。