JSON
为了过几天要使用,还是去W3上面找了一些JSON资料复习了一下,以下来自W3。
JSON 是用于存储和传输数据的格式。
JSON 通常用于服务端向网页传递数据 。
JSON 是一种轻量级的数据交换格式。
JSON 使用 JavaScript 语法,但是 JSON 格式仅仅是一个文本。
文本是可以被任何编程语言读取及作为数据格式传递。
JSON实例
以下 JSON 语法定义了 sites 对象: 2 条网站信息(对象)的数组:
{"sites":[
{"name":"Baidu", "url":"www.baidu.com"},
{"name":"Google", "url":"www.google.com"},
]}
JSON 格式在语法上与创建 JavaScript 对象代码是相同的。
由于它们很相似,所以 JavaScript 程序可以很容易的将 JSON 数据转换为 JavaScript 对象。
语法规则
···数据为 键/值 对。
···数据由逗号分隔。
···大括号保存对象
···方括号保存数组
JSON 数据 ----- 一个名称对应一个值
JSON 数据格式为 键/值 对,就像 JavaScript 对象属性。
键/值对包括字段名称(在双引号中),后面一个冒号,然后是值:
"name":"Baidu"
JSON 对象
JSON 对象保存在大括号内。
就像在 JavaScript 中, 对象可以保存多个 键/值 对:
{"name":"Baidu", "url":"www.baidu.com"}
JSON 数组
见上面的实例即可
JSON.parse() 方法
JSON.parse() 方法用于将一个 JSON 字符串转换为对象。
语法规则:
JSON.parse(text,[reviver])
参数说明:
```text: 必需, 一个有效的 JSON 字符串。
```reviver: 可选,一个转换结果的函数, 将为对象的每个成员调用此函数。
返回值:
返回给定 JSON 字符串转换后的对象。
实例:
var text = '{"employees":[' +
'{"name":"Baidu","site":"http://www.baidu.com" },' +
'{"name":"Google","site":"http://www.Google.com" },' +
'{"name":"Taobao","site":"http://www.taobao.com" }]}';
obj = JSON.parse(text);document.getElementById("demo").innerHTML =
obj.employees[1].name + " " + obj.employees[1].site;
JSON.stringify() 方法
JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串。
语法规则:
JSON.stringify(value[, replacer[, space]])
参数说明:
value: 必需, 要转换的 JavaScript 值(通常为对象或数组)。
replacer:可选。用于转换结果的函数或数组。如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值。使用返回值而不是原始值。如果此函数返回 undefined,则排除成员。根对象的键是一个空字符串:""。如果 replacer 是一个数组,则仅转换该数组中具有键值的成员。成员的转换顺序与键在数组中的顺序一样。
space: 可选,文本添加缩进、空格和换行符,如果 space 是一个数字,则返回值文本在每个级别缩进指定数目的空格,如果 space 大于 10,则文本缩进 10 个空格。space 也可以使用非数字,如:\t。
返回值:
返回包含 JSON 文本的字符串。
实例:
var str = {"name":"Baidu", "site":"http://www.baidu.com"}
str_pretty1 = JSON.stringify(str)document.write( "只有一个参数情况:" );
document.write( "<br>" );
document.write("<pre>" + str_pretty1 + "</pre>" );
document.write( "<br>" );
str_pretty2 = JSON.stringify(str, null, 4) //使用四个空格缩进
document.write( "使用参数情况:" );
document.write( "<br>" );
document.write("<pre>" + str_pretty2 + "</pre>" ); // pre 用于格式化输出