json通过list返回的数据只能输出一组

json通过list返回的数据只能输出一组

servlet


LibServiceImpl lsi=new LibServiceImpl();

List<Book> l=lsi.getBooksByCondition(bookId, bookName, catgoryName);

System.out.println(l.toString());

JSONObject json=new JSONObject(l);

response.getOutputStream().write(json.toString().getBytes("utf-8"));


jsp页面

success:function(json){

$('#tb tr:gt(0)').remove();

               var s = '';

               for (var i = 0; i < json.length; i++)

               alert(json.length);

               s += '<tr><td>' + json[i].bookid + '</td><td>' + json[i].bookname + '</td><td>' + json[i].bookclassname + '</td>' + '<td>' + json[i].bookprice + '</td><td>' + json[i].bookdescribe + '</td></tr>';

               $('#tb').append(s);

}


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
一叶知秋519 2017-12-11 14:10:40
success:function(json){
    var s = null;
    for (var i = 0; i < json.length; i++){
	alert(json.length);
	s = s+ "<tr><td>" + json[i].bookid  + "</td><td>" + json[i].bookname + "</td><td>" + json[i].bookclassname + "</td><td>" + json[i].bookprice + "</td><td>"+ json[i].bookdescribe + "</td></tr>";
	$("#cont>tr").remove();
    }
    $("#cont").html(s);
}

我把你的代码调整了一下,在我本地的测试环境中,可以显示多条数据的,你再试下,如果还有问题的话,建议你提交作业后一起批复。祝学习愉快~

  • 提问者 qq_于肉兔_04074891 #1
    我好像进入不了循环 把alert写到循环里没有用 servlet里是怎么写的 我的list好像没有传过来
    2017-12-11 15:28:51
  • JSONObject 每次只能传递一个json对象,建议你使用JSONArray json=new JSONArray(l); 再试下,如果还是不能显示的话,你就提交作业吧,提交作业以后根据你的其他代码一起调试,也好定位问题解决问题。
    2017-12-11 15:38:08
一叶知秋519 2017-12-11 10:48:15

你好,建议检查一下通过List<Book> l=lsi.getBooksByCondition(bookId, bookName, catgoryName);查询出来的数据;看是不是只查询出来了一条数据。

  • 提问者 qq_于肉兔_04074891 #1
    查询到的是多条
    2017-12-11 10:49:45
  • 你好,那你把你写的完整的Ajax代码贴一下吧,方便帮助你解答。
    2017-12-11 11:06:45
  • <script type="text/javascript"> $("#search").click(function(){ $.ajax({ url:"/Secworks/showBookServlet", type:"post", data:{ bookID:$("input[name=bookID]").val(), bookName:$("input[name=bookName]").val(), catgoryName:$("input[name=catgoryName]").val() }, dataType:"json", success:function(json){ $('#tb tr:gt(0)').remove();//删除之前的数据 var s = ''; for (var i = 0; i < json.length; i++) alert(json.length); s += '<tr><td>' + json[i].bookid + '</td><td>' + json[i].bookname + '</td><td>' + json[i].bookclassname + '</td>' + '<td>' + json[i].bookprice + '</td><td>' + json[i].bookdescribe + '</td></tr>'; $('#tb').append(s); } }); }); </script>
    2017-12-11 11:10:08
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Java Web基础入门2018版
  • 参与学习       716    人
  • 提交作业       185    份
  • 解答问题       1363    个

会Java?懂前端基础?想学后台开发?那么,赶快来学习《Java Web入门》路径吧。本路径主要介绍Java Web的基础知识,并配有大量案例,定会让你收获多多!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师