JSON = JavaScript Object Notation,即JS 对象标记。是一种轻量级的数据交换格式。JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串,比如:
var obj = {a: 'Hello', b: 'World'}; //这是一个JS对象,注意键名也是可以使用引号包裹的
var json = '{"a": "Hello", "b": "World"}'; //这是一个 JSON 字符串,本质是一个字符串
JSON 变量类型
在 JS 语言中,一切都是对象。因此,任何支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。
==> 但是对象
和数组
是比较特殊且常用的两种类型。
对象:对象在 JS 中是使用花括号包裹 {}
起来的内容,数据结构为 {key1:value1, key2:value2, ...} 的键值对结构。在面向对象的语言中,key 为对象的属性,value 为对应的值。键名可以使用整数和字符串来表示。值的类型可以是任意类型。
数组:数组在 JS 中是方括号 []
包裹起来的内容,数据结构为 ["java", "javascript", "vb", ...] 的索引结构。在 JS 中,数组是一种比较特殊的数据类型,它也可以像对象那样使用键值对,但还是索引使用得多。同样,值的类型可以是任意类型。
JSON 语法规则
花括弧: 一个容器
方括号: 装载数组
冒号: 名称和值之间
逗号: 数组元素之间
双引号: 用于包裹`键`和`值`
实例
1 - JSON 数据:键值对
"name":"Runoob"
2 - JSON 对象
{ "name":"Runoob", "url":"www.runoob.com" }
3 - JSON 数组
"sites":[
{"name":"Runoob", "url":"www.runoob.com"},
{"name":"Google", "url":"www.google.com"},
{"name":"Taobao", "url":"www.taobao.com"}
]
JSON 和 JS 对象互转
要实现从对象
转换为 JSON 字符串
,使用 JSON.stringify()
方法
var json = JSON.stringify({a: 'Hello', b: 'World'}); //结果是 '{"a": "Hello", "b": "World"}'```
要实现从 `JSON 转换`为`对象`,使用 `JSON.parse()` 方法 [○○○](http://www.runoob.com/try/try.php?filename=tryjs_json_parse)
var obj = JSON.parse('{"a": "Hello", "b": "World"}'); //结果是 {a: 'Hello', b: 'World'}```
和XML的比较
可读性: JSON和XML的可读性可谓不相上下,一边是简易的语法,一边是规范的标签形式,很难分出胜负。