一、JSON
JSON:JavaScript Object Notation.JavaScript 对象表示法。
JSON 语法:
1、数据在名称/值对中
2、数据由逗号分隔
3、花括号保存对象
4、方括号保存数组
5、名称/值对之间或JSON 对象之间使用逗号分隔
示例一:单个JSON 对象
var milan={ "name":"Milan", "sex":"male", "age":"0", }; 示例二:数组包含JSON 对象 var people=[ {"name":"Milan","sex":"male","age":"0"}, {"name":"Xiaoxia","sex":"female","age":'"1"} ]; 示例三:JSON 对象包含数组 var info={ "people":[ {"name":"Milan","sex":"male","age":"1"}, {"name":"Xiaoxia","sex":"female","age":"1"} ] };
JSON 值可以是:
数字(整数或浮点数)
字符串(在双引号中)
逻辑值(true 或 false)
数组(在方括号中)
对象(在花括号中)
null
JSON 特点:
从上面示例可看出,JSON 对象包含在花括号之间。同XML 一样,具有自描述性,但JSON 能使用内建立的JavaScript eval()方法进行解析,且读写速度更快。
简单读写示例:
<script> //直接创建JSON 对象 var milan={"name":"Milan","sex":"male","age":"1"}; //使用JSON 对象 alert("创建的JSON 对象属性值为:"+"name:"+milan.name+" sex:"+milan.sex+" age:"+milan.age); milan.age=2; alert("age:"+milan.age); </script> 浏览器显示:
对于示例二,访问数组中的JSON 对象语法同数组,如people[0]即是第一个JSON 对象。
二、JSON 对象
创建方法:
1、直接创建(上面示例)。
2、通过解析字符串得来:
(1)、JavaScript的eval("("+txt+")"):(不太建议)eval() 函数使用的是 JavaScript 编译器,可解析 JSON 文本,然后生成 JavaScript 对象。必须把文本包围在括号中,这样才能避免语法错误:
<script> var txt='{"name":"Milan","sex":"male"}';//可使用多段字符串相加形式,但语法不能出错,否则无法解析 var milanObject=eval("("+txt+")");//注意两个括号! </script> eval()函数会编译和执行任何JavaScript代码,所以可能会有安全问题。建议使用解析器。
(2)、JSON.parse(txt):即解析器解析得到。JSON 解析器只能识别JSON 文本,而不会执行其它代码。
说明:JSON 解析器需要浏览器的支持,对于有的低版本浏览器(如IE 8、火狐3.5、safari4等及以下版本)不支持,对此可引入库来解决。
需要的库: https://github.com/douglascrockford/JSON-js
JSON 使用:
1、使用存放于外部的JSON对象:(引入后可直接使用)
<script src="dddd.json"></script>
实际上,.json可以是任何名字,只要与原文件名与格式一样就能读取,取格式名为json只是一个标准。JSON 的MIME (Multipurpose Internet Mail Extensions)类型为application/json。
2、html中使用JavaScript创建JSON对象。
三、JSON.parse()与JSON.stringify()
JSON.stringify()是JSON.parse() 的相反过程,即将json 对象转换为字符串。
alert(typeof {"id":1,"name":"名称"});//提示Object
alert(typeof JSON.stringify({"id":1,"name":"名称"}));//提示string
注意拼写:stringify
