半步多 玄玉的博客

json和js的关系

2010-12-10
玄玉
 

json实际上是js的一个子集,JavaScript1.2开始就已经内含了JSON的实现

通过JavaScript中的eval()函数可以将字符串形式的JSON表达式转化成真正的JSON对象

eval()是JavaScript中很早就出现的一个函数,它的功能很强,但是容易引发一些安全问题

比如说eval()会动态的执行字符串形式的JavaScript脚本,恶意用户如果注入脚本的话就会导致页面出现危险

所以,下面的例子中,会在eval()括号中再显式添加两个小括号

/**
 * eval()的示例
 */
var obj = "{name: 'zhangsan'}";
var jsonObj = eval("(" + obj + ")");
// 浏览器弹出name框
alert(jsonObj.name);
// 浏览器控制台打印json对象的字符串
console.log(JSON.stringify(jsonObj));
/**
 * 子集的示例
 */
var stu = {name:'沈浪', age:22, sex:'', favorate:['义胆','行侠','斗智'], say:function(){alert(this.name+"\r\n"+this.age+"\r\n"+this.favorate);}};
//输出属性(两种写法都支持)
alert(stu.name + "--" + stu["age"]);
//调用方法
stu.say();

Content