Java 如何将列表对象放入JSon对象
在servlet中,我试图在json对象中放置一个列表,但我无法找到错误所在。我从ajax调用中调用servlet,下面是servlet代码Java 如何将列表对象放入JSon对象,java,json,servlets,arraylist,resultset,Java,Json,Servlets,Arraylist,Resultset,在servlet中,我试图在json对象中放置一个列表,但我无法找到错误所在。我从ajax调用中调用servlet,下面是servlet代码 Latlng latlng=new Latlng(); List<Latlng> vehicleList = new ArrayList<Latlng>(); sql ="SELECT a.vehicleno,a.lat,a.lng,a.status,a.rdate,a.rtime from latlng a,vehicle_de
Latlng latlng=new Latlng();
List<Latlng> vehicleList = new ArrayList<Latlng>();
sql ="SELECT a.vehicleno,a.lat,a.lng,a.status,a.rdate,a.rtime from latlng a,vehicle_details b where a.vehicleno=b.vehicleno and b.clientid="+clientid +" and b.groupid in(select groupid from group_details where groupname='"+gname+"' and clientid='"+clientid+"')";
resultSet = statement.executeQuery(sql);
while(resultSet.next()){
String s=resultSet.getString("vehicleno");
latlng.setVehicleno(resultSet.getString("vehicleno"));
latlng.setLat(resultSet.getString("lat"));
latlng.setLat(resultSet.getString("lng"));
latlng.setLat(resultSet.getString("status"));
latlng.setLat(resultSet.getString("rdate"));
latlng.setLat(resultSet.getString("rtime"));
vehicleList.add(latlng);
System.out.println(vehicleList);
String json = new Gson().toJson(vehicleList);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(json);
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
有什么不对劲吗。它甚至不显示异常。尝试这样做
while (resultSet.next()) {
latlng=new Latlng();
String s = resultSet.getString("vehicleno");
latlng.setVehicleno(resultSet.getString("vehicleno"));
latlng.setLat(resultSet.getString("lat"));
latlng.setLat(resultSet.getString("lng"));
latlng.setLat(resultSet.getString("status"));
latlng.setLat(resultSet.getString("rdate"));
latlng.setLat(resultSet.getString("rtime"));
vehicleList.add(latlng);
}
System.out.println(vehicleList);
String json = new Gson().toJson(vehicleList);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(json);
您是否尝试过在这段代码中设置断点并单步执行以查看发生了什么?目前,它永远不会显示异常,因为您基本上是在吞咽发生的任何ClassNotFoundExceptions或SQLExceptions,将异常写入控制台,这对servlet代码没有任何帮助。此外,您可能应该将最后四行放在while循环的后面。我尝试使用断点执行stmt,但不会进入while循环只是捕获但不显示execption异常将打印到IDE的控制台/输出窗口。尝试在那里查找,或者在e.printStackTrace上放置一个断点,然后检查e变量。