标签:
eval()函数可以将字符串解析为javascript代码执行。
var str = "alert(‘hello world‘);"; alert(str); //alert(‘hello world‘);
eval(str); //hello world
eval()函数常用于将json字符串解析为json对象。
var jsonStr = "{‘name‘:‘bossLiu‘,‘age‘:27}"; alert(jsonStr.name); //undefined var jsonObject = eval("("+jsonStr+")"); alert(jsonObject.name); //bossLiu
注意:由于json对象是用{}括起来的,在javascript中会被当成语句块处理,所以必须将其强制转换成表达式,所以在jsonStr的两边要加上()
在ajax中常常使用json作为传输数据,由于返回的数据是字符串,所以需要使用eval()函数解析。
json.txt内容如下:
{ "person": { "name": "bossLiu", "age": 27 } }
<!DOCTYP html> <html> <head> <meta charset="utf-8"> <script> function ajax() { var ajax = new XMLHttpRequest(); ajax.open("GET","json.txt",true); ajax.send(); ajax.onreadystatechange = function () { if (ajax.readyState == 4) { if (ajax.status == 200 || ajax.status == 304) { var result = ajax.responseText; var object = eval("("+result+")"); document.getElementsByTagName("div")[0].innerHTML = object.person.name; } } } } </script> </head> <body> <button onclick="ajax()">点我</button> <div></div> </body> </html>
标签:
原文地址:http://www.cnblogs.com/bossliu/p/4994938.html