使用jquery ajax显示Json作为对jsp页面的post请求的响应

时间:2014-02-13 16:21:58

标签: jquery ajax json jsp postback

显示json数据的代码

$(document).ready(function(){
      $("button").click(function(){
          $.ajax({
              url:"jsonCreation.jsp",
              type:'post',
              dataType: 'json',
              success: function(data) {

                  alert(eval("data = "+data.phone+";"));
                  $('#email').val(data.email);
              }
          });



      });
    });

创建json响应的代码

     <%

       try{


//connection statenebt
JSONArray respJson = new JSONArray(); 
java.sql.ResultSetMetaData rsmd = rs.getMetaData();
int numColumns = rsmd.getColumnCount();




while (rs.next()) { 

    JSONObject obj  = new JSONObject();
    for (int i = 1; i < numColumns + 1; i++) {

        String columnName = rsmd.getColumnName(i);
        obj.put(columnName, rs.getString(columnName));

    }
    respJson.put(obj);


  }


   //respJson.toString();
out.println(respJson.toString());
System.out.println(respJson);

}
catch(Exception e)
{ 
System.out.println(e);  
}

%>

输出

   [{
     "phone":"XXXX",
     "fax":"XXX",
     "website":"www.xxxx.xx",
     "enterpriseName":"XXXXLIMITED",
     "enterpriseId":"1001",
     "factoryAddress":"",
     "isActive":"1",
     "category":"Financial   Services",      
     "chairmanName":    "XXXX",
     "administrativeDept ":"Industries Department",
     "incorporationDate":"XXXXX",
     "email":"XXXX.com",
     "incorporationAct":"Companies Act,1956",
     "mdName":"XXXXX",
     "officeAddress":"XXXXXX",
     "activities":"XXXXX for industries XXXXXXXX"
}]

如何从网站

访问

以前我用过这段代码

$.get("jsonCreation.jsp",function(data,status){

          alert(data.phone);
          alert(data.email);
        });

>The output of alert was 


 undefined

3 个答案:

答案 0 :(得分:1)

使用data[0]代替data,因为您正在使用对象数组

$(document).ready(function(){
      $("button").click(function(){
          $.ajax({
              url:"jsonCreation.jsp",
              type:'post',
              dataType: 'json',
              success: function(data) {

                  alert(eval("data = "+data[0].phone+";"));
                  $('#email').val(data[0].email);
              }
          });    
     });
});

答案 1 :(得分:0)

您有一个ARRAY对象,因此请参考索引:

data[0].website;

如果您有一个包含多个对象的数组,也可以循环:

for (var i = 0; i < data.length; i++) {
    console.log(data[i].website);
}

答案 2 :(得分:0)

var row= $('<tr> </tr>').appendTo('#tab');  

$.each(responseJson, function(key, value) {   
    //alert(value.enterpriseName);
    //alert(responseJson);

    console.log(responseJson[key].website);
        $('<td> </td>').text(responseJson[key].enterpriseName).appendTo(row);
        $('<td> </td>').text(value.phone).appendTo(row);
        $('<td> </td>').text(value.website).appendTo(row);
 }