论坛首页 Web前端技术论坛

AJAX读取JSON格式数据

浏览 25055 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (11) :: 隐藏帖 (2)
作者 正文
   发表时间:2008-08-23  
紧接上篇,也对AJAX读取JSON格式数据,做了个测试,一句话,感觉就是超棒了。
首先,我们随意写个JSON格式的数据文件user.txt
{
     userName: "nihao",
     sex: "male",
     age: "23"
}

下面我们写个AJAX用到一个基本的ajax.js文件一般这里我们这个文件分别写出来。
function createXMLHttpRequest() {
    var req;
         if (window.XMLHttpRequest) {
	    req = new XMLHttpRequest();
	}else if (window.ActiveXObject) {
	    req = new ActiveXObject("Microsoft.XMLHTTP");
	}
	return req;
}

另外,我们导入一个Ajax的资源文件prototype1.6.js,在结束时我上传给大家。
然后,我们建个主页面来jsontest.html测试下AJAX读取JSON格式的数据。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <!-- 导入两个js文件 -->
    <script type="text/javascript" src="./ajax.js"></script>
    <script type="text/javascript" src="./prototype1.6.js"></script>
    <title>jsontest.html</title>
	
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=GB18030">
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

    <script type="text/javascript">
        var req = createXMLHttpRequest();
	    function startRequest(){
		    try{
		        req.onreadystatechange = handleStateChange;
		        req.open("GET", "user.txt", true);
		        req.send(null);    
		    }catch(exception){
		        alert("");
		    }  
	    }
		function handleStateChange(){    
	    	if(req.readyState == 4){        
	       		 if (req.status == 200 || req.status == 0){
		            // 取得返回字符串
		            var resp = req.responseText;
		            // 构造返回JSON对象的方法
		            var func = new Function("return " + resp);
		            // 得到JSON对象
		            var json = func( );
		            // 显示返回结果
		            alert("userName: " + json.userName + " " + "sex: " + json.sex + " " + "age: " + json.age);
	              }
	         }
	     }	    
    </script>
  </head>  
  <body>
    <div>
        <input type="button" value="json's value"
                onclick="startRequest();" />
    </div>
  </body>
</html>

试运行结果,大家自己去调试了,在浏览器里输入http://localhost:8080/jsontest/jsontest.html即可了。

最后,给大家上传AJAX的一个js资源文件prototype1.6.js

  • prototype1.6.rar (26.4 KB)
  • 描述: AJAX的一个js资源文件prototype1.6.js
  • 下载次数: 706
   发表时间:2009-03-06  
刚刚好要用到json,谢啦
0 请登录后投票
   发表时间:2009-03-06  
大哥。。你都引了prototype了.. 还自己写啥

function createXMLHttpRequest() { 
    var req; 
         if (window.XMLHttpRequest) { 
        req = new XMLHttpRequest(); 
    }else if (window.ActiveXObject) { 
        req = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    return req; 


0 请登录后投票
   发表时间:2009-03-06  
中文出不来,是为什么?
0 请登录后投票
   发表时间:2009-06-10  

var resp = req.responseText;
// 构造返回JSON对象的方法  
   var func = new Function("return " + resp);  
  // 得到JSON对象  
   var json = func( ); 

 

可以直接用:var json = eval('(' + req.responseText+ ')');

0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics