JSON:JavaScript 对象表示法(JavaScript Object Notation),是一种轻量级的数据交换格式;采用完全独立于编程语言的文本格式来存储和表示数据,是存储和交换文本信息的语法;类似 XML,但JSON 比 XML 更小、更快,更易解析。
JSON 和 JS 对象互转:
1.实现从 JSON 转换为对象,JavaScript 程序能够使用内建的 eval()函数。
2.实现从 JSON 转换为对象,也可使用 JSON.parse() 方法。
3.实现从对象转换为 JSON 字符串,使用 JSON.stringify() 方法
与 XML 相同之处:JSON 是纯文本;JSON 具有“自我描述性”(人类可读);JSON 具有层级结构(值中存在值);JSON 可通过 JavaScript 进行解析;JSON 数据可使用 AJAX 进行传输。
与xml的 不同之处:没有结束标签;更短;读写的速度更快;能够使用内建的 JavaScript eval() 方法进行解析;使用数组;不使用保留字。
为什么使用 JSON?(与xml相比, AJAX 应用程序更快更易使用JSON)
JSON语法:JSON 语法是 JavaScript 对象表示法语法的子集。
任何支持的类型都可以通过 JSON 来表示:数据在名称/值对中(对象表示为键值对);数据由逗号分隔;花括号保存对象;方括号保存数组。
json键值对:用来保存 JS 对象的一种方式,格式为键/值对组合中的键名写在前面并用双引号 "" 包裹,使用冒号 : 分隔,然后紧接着值。例子:"firstName": "Json"
json值的写法:
1.数字(整数或浮点数) "age":20
2.字符串(在双引号中) "name":"acebear"
3.逻辑值(true 或 false) "flag":true
4.数组(在方括号中) "sites": [{"name":"acebear", "url":"www.jianshu.com/u/63e620075073" }, { "name":"google" , "url":"www.google.com" }]
5.对象(在花括号中) { "name":"acebear", "url":"www.jianshu.com/u/63e620075073"}
6.null "run":null
ps:1.此外,JSON 对象中可以包含另外一个 JSON 对象(任何值都可以是对象)。
2.因为最终json是一个对象,故不是对象的值要加大括号。例子:{ "age":20}
3.可以使用 delete 关键字来删除 JSON 对象的属性:delete myObj.sites.site1;
异常:json不能存储 Date 对象。如果需要存储 Date 对象,需要将其转换为字符串。之后再将字符串转换为 Date 对象。