无法在json的ajax调用中设置返回类型?

无法在json的ajax调用中设置返回类型?,json,ajax,jsp,servlets,Json,Ajax,Jsp,Servlets,我在ajax调用中遇到了一些小问题,即无法在ajax中设置数据类型,对于字符串和文本数据类型,我得到了成功的ajax调用,但是当我从servlrt ajax调用返回列表失败时,请告诉我如何修复它,提前感谢您的帮助 $ .ajax({ type: 'GET', url : "attendancePercentage", dataType: "json", data : {"stdate": stdate, "endate": endate}, succe

我在ajax调用中遇到了一些小问题,即无法在ajax中设置数据类型,对于字符串和文本数据类型,我得到了成功的ajax调用,但是当我从servlrt ajax调用返回列表失败时,请告诉我如何修复它,提前感谢您的帮助

 $
.ajax({
     type: 'GET',
    url : "attendancePercentage",
    dataType: "json",
    data : {"stdate": stdate, "endate": endate},
    success : function(data, status) {
        alert(status);
        alert(data);
    }
});
Servlet:

    List<StudentMark> stList = new ArrayList<StudentMark>();

   try {
        Class.forName("com.mysql.jdbc.Driver");
        Connection con = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/test_schema", "root", "root");
        String sql = "select * from attendance where attendance.date>=? and attendance.date<=?";

        PreparedStatement pstmt = con.prepareStatement(sql);
        pstmt.setString(1, stDate);
        pstmt.setString(2, enDate);

        rs = pstmt.executeQuery();
        while (rs.next()) {
            StudentMark ge = new StudentMark();

            ge.setStudentName(rs.getString(3));
            ge.setDate(rs.getString(2));
            ge.setStatus(rs.getString(4));
            //System.out.println(("&&&&&..." + ge));

            stList.add(ge);
            //System.out.println("ge :" + ge.getStudentName()+","+ge.getDate()+","+ge.getStatus());

        }

        System.out.println("list>>"+stList);
        System.out.println("list>>"+json);//[{"","",""}]

    } catch (Exception e) {
        System.err.println(e.getMessage());
    }
List stList=new ArrayList();
试一试{
Class.forName(“com.mysql.jdbc.Driver”);
Connection con=DriverManager.getConnection(
“jdbc:mysql://localhost:3306/test_schema“,”根“,”根“);
String sql=“从考勤中选择*,其中考勤日期>=?和考勤日期>”+stList);
System.out.println(“list>>”+json);//[{“,”}]
}捕获(例外e){
System.err.println(e.getMessage());
}

我在上面的s.o.p语句中得到输出,如何为这个json对象设置数据类型

您可以在StudentMarsk类中重写toString,如 @凌驾 公共字符串toString(){ 返回新的Gson().toJson(this);
}

您可以在StudentMarsk类中重写toString,如 @凌驾 公共字符串toString(){ 返回新的Gson().toJson(this);
}

你能解释一下怎么做吗?导入com.google.gson.gson;public class StudentMark{private String studentName;private String date;private String status;//您的getter和setters@Override public String toString(){return new Gson().toJson(this);}}尝试了这个,但我还是发现ajax调用失败。另外,您应该使用PrintWriter而不是System.out PrintWriter out=response.getWriter()输出;打印输出(stList);setContentType(“应用程序/json”);out.close();非常感谢它为我工作。你能告诉我如何在ajax中获取数据中的列表对象,如何分割和显示。你能解释一下,怎么做吗?导入com.google.gson.gson;public class StudentMark{private String studentName;private String date;private String status;//您的getter和setters@Override public String toString(){return new Gson().toJson(this);}}尝试了这个,但我还是发现ajax调用失败。另外,您应该使用PrintWriter而不是System.out PrintWriter out=response.getWriter()输出;打印输出(stList);setContentType(“应用程序/json”);out.close();非常感谢它为我工作。你能告诉我如何在ajax中获取数据中的列表对象,如何分割和显示吗。