eval() 将字符串作为js语句解析,解析JSON格式的字符串时,能返回一个JSON格式的对象。
//jsonString是一个JSON格式的字符串 var data = eval('(' + jsonString + ')'); console.dir(data); //执行单个表达式 document.write(eval("1+1")); //执行多条语句 eval("x=10;y=20;document.write(x*y);"); //使用eval()方法有可能会抛出异常 try{ //prompt()方法会引出一个输入性的弹窗,用户输入了表达式给eval()执行 alert(eval(prompt("Please enter a expression:",""))); }catch(e){ alert(e.message); } //解析JSON字符串 //定义一个JSON格式的字符串 //注意双引号和单引号的使用 //定义JSON字符串的时候不要回车,否则会出现问题 var strJson = "{'name':'Larry','gender':'female'}"; //eval()将JSON字符串解析成了一个对象 var jsonObj = eval("(" + strJson + ")"); document.write(jsonObj.name + jsonObj.gender);
观察eval()返回给jsonObj的结果可以看到,的确是一个JSON格式的对象。
stringify() 将JSON对象转换为JavaScript对象表示法的JSON字符串(对象转为字符串)
var jsonString = JSON.stringify(object); var people = new Object(); people.name = "Larry"; people.sex = "famle"; people.address = "Shanghai"; var jsonPeople = JSON.stringify(people); alert(typeof jsonPeople); //string alert(jsonPeople);
parse() 将JavaScript对象表示法的JSON字符串转换为对象(字符串转对象)
var jsonObj= JSON.parse(jsonStr); var jsonStr = '{"name":"Larry","sex":"famle","address":"Shanghai"}' var jsonObj= JSON.parse(jsonStr);
alert(typeof jsonObj); //Object alert(jsonObj);