function loadInfo() {
$.ajax({
type: "GET",
url:"select.do?method=selectInfo",
cache:false,
dataType:"json",
async:true,
success:function (listInfo){
for(var i;i<listInfo.length;i++) {
$("#mytable").append("<tr>" +
"<td id=\"getid\">" + listInfo(i).Object[0].get("id") + "</td>" + 
    "<td id=\"getname\">" + listInfo(i).Object[1].get("name") + "</td>" +
    "<td id=\"gettel\">" + listInfo(i).Object[2].get("telephone") + "</td>" +
    "<td id=\"getaddress\">" + listInfo(i).Object[3].get("address") + "</td>" +
    "<td>" + "<input type=\"button\" value = \"修改\" onclick = \"updateInfo(\'editInfo.jsp\',this)\"/></td>" +
    "<td>" + "<input type=\"button\" value = \"删除\" onclick = \"del(this)\"/></td>" +
"</tr>" );
}
},
error:function(data) {
alert("修改更新失败!");
}
});
}我json 传回来字符串是{[Object object],[Object object]} 这里面的Object是一个从数据库返回的HashMap对象,我现在要如何获取对象中的属性值。希望给出代码

解决方案 »

  1.   

    这个就困难了, 人家根本不知道你返回数据的结构,如何跟你讲?
    你可以在
    success:function (listInfo){
    之后加多一行:
    debugger;
    for(var i;i<listInfo.length;i++) {然后在firefox(要安装firebug)中,按f12来跟踪查看返回值的情况。
      

  2.   

    这个意思??结构一定要知道,要不无法生成html的
    $("#mytable").append("<tr>" +
    "<td id=\"getid\">" + listInfo[i].Object[0]["id"]+"</td>" +
        "<td id=\"getname\">" + listInfo[i].Object[1]["name"] + "</td>" +
        "<td id=\"gettel\">" + listInfo[i].Object[2]["telephone"]+"</td>" +
        "<td id=\"getaddress\">" + listInfo[i].Object[3]["address"]+"</td>" +
        "<td>" + "<input type=\"button\" value = \"修改\" onclick = \"updateInfo(\'editInfo.jsp\',this)\"/></td>" +
        "<td>" + "<input type=\"button\" value = \"删除\" onclick = \"del(this)\"/></td>" +
    "</tr>");
      

  3.   

    success:function (listInfo){
    alert(typeof listInfo)
    看看返回的是什么类型的
    如果不是object的话一般要加上
    jsonData = $.parseJSON(listInfo);
      

  4.   

    jsonData = $.parseJSON(listInfo);
      

  5.   

    我返回的是Object类型
    我网上查下资料 var dataObj=eval("("+listInfo+")");
    但是试了下还是不行
      

  6.   

    DEBUG - {conn-100003} Connection
    DEBUG - {conn-100003} Preparing Statement:    select id,name,telephone,address from ADDRESSBOOK  
    DEBUG - {pstm-100004} Executing Statement:    select id,name,telephone,address from ADDRESSBOOK  
    DEBUG - {pstm-100004} Parameters: []
    DEBUG - {pstm-100004} Types: []
    DEBUG - {rset-100005} ResultSet
    DEBUG - {rset-100005} Header: [id, name, telephone, address]
    DEBUG - {rset-100005} Result: [20001, 20001, 20001, 20001]
    DEBUG - {rset-100005} Result: [30001, 30001, 30001, 30001]这是数据库返回的结果集,保存在list中
    List list= selectInfo();
    response.setContentType("text/plain");
    OutputStream out = response.getOutputStream();
    ObjectMapper mapper = new ObjectMapper();
    mapper.writeValue(out,list);
    out.close();
    返回页面JSON
      

  7.   


    你的后台中定义的List list= selectInfo();我不知道你后台中那么一搞,再输出的list是js中的json格式么?你打印出来瞅瞅;像数组呀,json呀你不能在前台直接拿jsp服务端的数据格式就那么直接用
    success:function (listInfo){
        for(var i in listInfo){
            if(listInfo.hasOwnProperty(i)){
                alert(i+'='+listInfo[i])
            }
        }
    }
      

  8.   

    一般 json 传回来字符串是{[Object object],[Object object]} 表示取过来的数据格式不对
      

  9.   

    搞定了,用谷歌的Debug调出来了