返回数据类型使用的是JSON,返回的是个对象数组,大小可以取,但是每个对象具体属性取出来确实undefined
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
JSONArray json = new JSONArray();
List<Book> books = new ArrayList<Book>();
try{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/bookstore","root","12345678");
ps = conn.prepareStatement("select * from bookinfo");
rs = ps.executeQuery();
while(rs.next()){
Book book = new Book();
book.setAuthor(rs.getString("author"));
book.setBookconcern(rs.getString("bookconcern"));
book.setTitle(rs.getString("title"));
json.put(book);
}
                   PrintWriter out = resp.getWriter();
out.println(json.toString());
}
//...省略catch finally
js代码如下<head>
<title>Insert title here</title>
<script type='text/javascript' src="jquery-1.4.2.js"></script>
<script type="text/javascript">
$(function(){
$("#getbook").click(function(){
$.ajax({
dataType:"json",
url:"/TestJSON/getbook",
type:"POST",
success:function(data){
if(!(data.length>0)){$("#showbooktitle").empty();return false;}
else{
$("#showbooktitle").empty();
var s = "<thead id='showbooktitle'><tr><td>书名</td><td>作者</td><td>出版社</td></tr></thead>";
$("table").append(s);
$("#showbook").empty();
$.each(data,function(i,book){
var s = "<tr><td>"+book.title+"</td><td>"+book.author+"</td><td>"+book.bookconcern+"</td></tr>";
$("tbody").append(s);
});
}
}
});
});
});
</script>
</head>
<body>
<form action="#">
<input type="submit" value="查询所有图书" id="getbook"/>
</form>
<table id="showbooks" border="1">
<tbody id="showbook">
</tbody>
</table>
</body>
</html>
为什么
var s = "<tr><td>"+book.title+"</td><td>"+book.author+"</td><td>"+book.bookconcern+"</td></tr>";
这里取出的数据都是undefined