JSON
本来是想总结一下ajax,但是作为一种无需刷新页面即可从服务器取得数据的这样一个技术,其中的数据格式也是我们关心的。JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,便于人们阅读和书写,是理想的数据交换格式。
1. JSON对象
一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间运用 “,”(逗号)分隔。 名称用引号括起来;值如果是字符串则必须用双引号,数值型则不须要。例如:
var o={"id":"sx","ldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"};
2. JSON数组
数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间运用 “,”(逗号)分隔。例如:
var jsonranklist=[{"lid":"sx","ldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"},{"lid":"zd","ldigitid":123456,"topscore":1500,"topplaytime":"2009-11-20"}];
注意:JSON中所有的字符串必须使用双引号(单引号会导致语法错误)
小结:对象和数组2中结构就可以组合成复杂的数据结构。
3. JSON对象和JSON字符串之间的相互转换
在数据传输流程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键。例如:
JSON字符串:
var str1 = '{ "name": "sx", "sex": "woman" }';
JSON对象:
var str2 = { "name": "sx", "sex": "woman" };
JSON字符串转换为JSON对象的方法如下:
3.1 eval()
var a_id=eval(‘{"name":123}’);
使用eval()存在风险,因为可能会执行一些恶意代码。
3.2 json_parse
需要导入json_parse.js。
1 <script src="js/json_parse.js"></script> 2 <script language="javascript"> 3 var t = json_parse('{"name":123}'); 4 alert(t.name); 5 </script>>
3.2 JSON.parse
var vjson = JSON.parse(jsonstr):支持IE8和fireFox3这两个有内置json对象的浏览器;其他浏览器要引入json.js文件。
<script src="js/json.js"></script> <script language="javascript"> var t = JSON.parse('{"name":123}'); alert(t.name); </script>