如何获取JSON对象中的属性值

lufenzi860110 2012-11-14 04:48:27
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对象,我现在要如何获取对象中的属性值。希望给出代码
...全文
2864 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
风一样的大叔 2012-11-15
  • 打赏
  • 举报
回复
一般 json 传回来字符串是{[Object object],[Object object]} 表示取过来的数据格式不对
lufenzi860110 2012-11-15
  • 打赏
  • 举报
回复
搞定了,用谷歌的Debug调出来了
泡泡鱼_ 2012-11-14
  • 打赏
  • 举报
回复
引用 6 楼 lufenzi860110 的回复:
DEBUG - {conn-100003} Connection DEBUG - {conn-100003} Preparing Statement: select id,name,telephone,address from ADDRESSBOOK DEBUG - {pstm-100004} Executing Statement: select id,name,teleph……
你的后台中定义的List list= selectInfo();我不知道你后台中那么一搞,再输出的list是js中的json格式么?你打印出来瞅瞅;像数组呀,json呀你不能在前台直接拿jsp服务端的数据格式就那么直接用
success:function (listInfo){
    for(var i in listInfo){
        if(listInfo.hasOwnProperty(i)){
            alert(i+'='+listInfo[i])
        }
    }
}
吉普赛的歌 社区高级成员 T9 2012-11-14
  • 打赏
  • 举报
回复
引用 1 楼 yenange 的回复:
这个就困难了, 人家根本不知道你返回数据的结构,如何跟你讲? 你可以在 success:function (listInfo){ 之后加多一行: debugger; for(var i;i<listInfo.length;i++) { 然后在firefox(要安装firebug)中,按f12来跟踪查看返回值的情况。
你用了没有?用过了,而且你会用了的话,你根本都不需要来这里问谁的。
lufenzi860110 2012-11-14
  • 打赏
  • 举报
回复
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
lufenzi860110 2012-11-14
  • 打赏
  • 举报
回复
我返回的是Object类型 我网上查下资料 var dataObj=eval("("+listInfo+")"); 但是试了下还是不行
xuyi0822 2012-11-14
  • 打赏
  • 举报
回复
jsonData = $.parseJSON(listInfo);
如流风般凌乱 2012-11-14
  • 打赏
  • 举报
回复
success:function (listInfo){ alert(typeof listInfo) 看看返回的是什么类型的 如果不是object的话一般要加上 jsonData = $.parseJSON(listInfo);
Go 旅城通票 2012-11-14
  • 打赏
  • 举报
回复
这个意思??结构一定要知道,要不无法生成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>");
吉普赛的歌 社区高级成员 T9 2012-11-14
  • 打赏
  • 举报
回复
这个就困难了, 人家根本不知道你返回数据的结构,如何跟你讲? 你可以在 success:function (listInfo){ 之后加多一行: debugger; for(var i;i<listInfo.length;i++) { 然后在firefox(要安装firebug)中,按f12来跟踪查看返回值的情况。

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧