js处理json数据显示到jsp页面中【新手上路】

superhsj 2018-09-04 04:41:40
我在servlet服务器将数据库查询结果存储到resultset中,然后处理成json数据传到前台
Statement stmt = DataBase.DB_Conn.createStatement(); 
ResultSet rs = stmt.executeQuery("select fklb,ykxm,bmmc,lrr from dbfk where rownum<10");
mainQueryList = resultSetToJson(rs);
stmt.close();

其中 resultSetToJson方法代码如下:

public static String resultSetToJson(ResultSet rs) throws SQLException,JSONException
{
// json数组
JSONArray array = new JSONArray();
// 获取列数
ResultSetMetaData metaData = rs.getMetaData();
int columnCount = metaData.getColumnCount();
// 遍历ResultSet中的每条数据
while (rs.next()) {
JSONObject jsonObj = new JSONObject();
// 遍历每一列
for (int i = 1; i <= columnCount; i++) {
String columnName =metaData.getColumnLabel(i);
String value = rs.getString(columnName);
jsonObj.put(columnName, value);
}
array.put(jsonObj);
}
return array.toString();
}

然后在js中alert(mainQueryList) 显示为[object Object],[object Object],[object Object]……
请教怎样将数据显示到jsp的table的tbody中
我代码是这样写的:

$(function() {
$.ajax({
type : "POST",// 请求方式
url : "/MyWeb/demoServlet",// 发送请求地址
dataType : "json",
data : {// 发送给数据库的数据
},
// 请求成功后的回调函数有两个参数
success : function(mainQueryList) {
alert(mainQueryList);
var jsonData = JSON.stringify(mainQueryList);// 转成JSON格式
alert(jsonData);
// var result = $.parseJSON(mainQueryList);// 转成JSON对象
// alert(result);
// eval("var obj = " + mainQueryList);
var table = $("#xtbb-list1 tbody");
table.empty();
table
.append('<tr><th>付款类别</th><th>付款说明</th><th>申请部门</th><th>申请人</th></tr>');
var len = mainQueryList.length ;
for(var i = 0 ; i<len ; i++){
table
.append('<tr><th>' + jsonData.fklb + '</th><th>付款说明</th><th>付款金额</th><th>申请人</th></tr>');
}
}
});
});


其中alert(jsonData);没有弹出来,后面写法可能也不正确,请大神指导
...全文
668 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
superhsj 2018-09-05
  • 打赏
  • 举报
回复
感谢各位大佬,问题解决了,原来是json属性区分大小写,数据转到前台属性全部变成大写字母了
ps:JSON.parse()我这里不知道什么原因执行不过去,最后还是用eval处理的
再一次感谢各位的回复,对我帮助很大,也学习很多东西,做为新手,以后还得麻烦各位,希望多多指教
废话不多说,马上结账
Logerlink 2018-09-05
  • 打赏
  • 举报
回复
引用 11 楼 superhsj 的回复:
mainQueryList = JSON.parse(mainQueryList)
这句执行不过去,我也不清的为什么这些函数我这不能用,需要外部库吗?另外我用eval处理,结果返回的是undefined

JSON.parse 是原生的,不需要外部库支持
不需要用eval处理了,succeed下来直接将json字符串转成json对象即可(我上面写的)
superhsj 2018-09-05
  • 打赏
  • 举报
回复
引用 9 楼 Logerlink 的回复:

//let mainQueryList = '[{"fklb":"111","lrr":"aaa"},{"fklb":"222","lrr":"bbb"}]';
mainQueryList = JSON.parse(mainQueryList)
var table = $("#xtbb-list1 tbody");
table.empty();
table.append('<tr><th>付款类别</th><th>付款说明</th><th>申请部门</th><th>申请人</th></tr>');
var len = mainQueryList.length;
for(var i = 0; i < len; i++) {
table.append('<tr><th>' + mainQueryList[i].fklb + '</th><th>付款说明</th><th>付款金额</th><th>申请人</th></tr>');
}


mainQueryList = JSON.parse(mainQueryList)
这句执行不过去,我也不清的为什么这些函数我这不能用,需要外部库吗?另外我用eval处理,结果返回的是undefined
Logerlink 2018-09-05
  • 打赏
  • 举报
回复

let mainQueryList = '[{"fklb":"111","lrr":"aaa"},{"fklb":"222","lrr":"bbb"}]';
mainQueryList = JSON.parse(mainQueryList)
var table = $("#xtbb-list1 tbody");
table.empty();
table.append('<tr><th>付款类别</th><th>付款说明</th><th>申请部门</th><th>申请人</th></tr>');
var len = mainQueryList.length;
for(var i = 0; i < len; i++) {
table.append('<tr><th>' + mainQueryList[i].fklb + '</th><th>付款说明</th><th>付款金额</th><th>申请人</th></tr>');
}

上面发错了,试试这个
Logerlink 2018-09-05
  • 打赏
  • 举报
回复

//let mainQueryList = '[{"fklb":"111","lrr":"aaa"},{"fklb":"222","lrr":"bbb"}]';
mainQueryList = JSON.parse(mainQueryList)
var table = $("#xtbb-list1 tbody");
table.empty();
table.append('<tr><th>付款类别</th><th>付款说明</th><th>申请部门</th><th>申请人</th></tr>');
var len = mainQueryList.length;
for(var i = 0; i < len; i++) {
table.append('<tr><th>' + mainQueryList[i].fklb + '</th><th>付款说明</th><th>付款金额</th><th>申请人</th></tr>');
}
HaHa_Sir 2018-09-05
  • 打赏
  • 举报
回复
建议贴下处理请求,返回json部分代码。 参考:https://blog.csdn.net/HaHa_Sir/article/details/81742469
另外看下: mainQueryList 的数据类型: console.info(typeof mainQueryList ); if string , JSON.parse(str); 转为json对象。
HaHa_Sir 2018-09-05
  • 打赏
  • 举报
回复
建议贴下处理请求,返回json部分代码。 参考: https://blog.csdn.net/HaHa_Sir/article/details/81742469 。
另外看下: mainQueryList 的数据类型: console.info(typeof mainQueryList ); if string , JSON.parse(str); 转为json对象。
superhsj 2018-09-05
  • 打赏
  • 举报
回复
引用 5 楼 lqlqlq007 的回复:
看看控制台的打印信息,请求应该是失败了。


刚刚找到一处错误了,ajax的datatype应该是“text”,我写错了,现在打印出来返回的是
[{"fklb":"111","lrr":"aaa"},{"fklb":"222","lrr":"bbb"}]
这种格式
但是转json还是不行
讨厌走开啦 2018-09-05
  • 打赏
  • 举报
回复
看看控制台的打印信息,请求应该是失败了。
superhsj 2018-09-05
  • 打赏
  • 举报
回复
mainQueryList.length 的值是我后台取数的记录数
superhsj 2018-09-05
  • 打赏
  • 举报
回复
非常感谢楼上两位的回复,我刚试了一下,修改成JSON.parse()后,alert仍然没有弹出来
alert(mainQueryList); 弹出来的是一串[object Object],[object Object],[object Object]……
ps:console.log()调试怎么用?输出的日志从哪里看?
風灬雲 2018-09-04
  • 打赏
  • 举报
回复

js里面调试一般都是用console.log(),因为alert()会阻塞代码运行;
console.log()还能看到代码执行的位置,比较方便;

alert(mainQueryList);先看看这里有没有值;
确定是不是接口对接的问题,导致success()回调没有执行;

JSON.stringify(mainQueryList)这个是把JSON数据转换成字符串,字符串转JSON是JSON.parse()
田小瘦 2018-09-04
  • 打赏
  • 举报
回复
使用JSON.parse()试试 可以按F12看控制台 页面出现哪些错误

87,923

社区成员

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

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