JSON(javascript对象表示法)
1.为什么使用 JSON?
JSON 比 XML 更快更易使用,可使用ajax进行传输
2.json的值
数字(整数或浮点数)
字符串(在双引号中)
逻辑值(true 或 false)
数组(在方括号中)
对象(在花括号中)
null
3.语法格式
{名称:值,名称:值...}
json包含数组的形式,可包含多个数组
{
名称:
[{名称:值,名称:值...},
{名称:值,名称:值...},
{名称:值,名称:值...},
...],
名称:
[{名称:值,名称:值...},
{名称:值,名称:值...},
{名称:值,名称:值...},
...],
}
4.转换
JSON字符串转换为JSON对象
var obj = eval('(' + str + ')');
或者
var obj = str.parseJSON();
或者
var obj = JSON.parse(str);
其中第一种安全性不强,因为eval()也能执行别的js代码。
JSON对象或JS对象转化为JSON字符串
var last=obj.toJSONString();
或者
var last=JSON.stringify(obj);
5.js对象和json对象
字面上的区别:js对象定义中key没有双引号。
以及,json并不是一门语言,js对象的产生需要脚本引擎的执行,我们看到的是代码文本,js代码才是引擎解析的。另外,json对象里并不包含函数这一类型,所以json主要用于数据方面
6.返回自定义的json字符串
例子:
var obj = {
x : 1,
y : 2,
o : {
o1 : 1,
o2 : 2,
toJSON : function () {
return this.o1 + this.o2;
}
}
};
JSON.stringify(obj); // "{"x":1,"y":2,"o":3}"