首页 > 解决方案 > Java RestfulService 不返回 JSONArray

问题描述

我尝试从我的 RestService 取回 JSONArray:

@GET
@Path("alleMitarbeiterJSON")
public JSONArray alleMitarbeiterJSON() {


    JSONArray jsonArray = new JSONArray();

    try {
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        Connection con = DriverManager.getConnection(verbindungsUrl);
        if (con != null) {

            cs = con.prepareCall("{call sp_Auswertung(?)}");
            cs.setString(1, "MA");
            ResultSet rs = cs.executeQuery();

            while (rs.next()) {
                int total_rows = rs.getMetaData().getColumnCount();
                for (int i = 0; i < total_rows; i++) {
                    JSONObject obj = new JSONObject();
                    obj.put(rs.getMetaData().getColumnLabel(i + 1).toLowerCase(), rs.getObject(i + 1));
                    jsonArray.put(obj);

                }
            }

            rs.close();
            cs.close();
            con.close();


            System.out.println(jsonArray.toString());
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return jsonArray;

}

如果我使用系统输出,一切正常 - 正确的数据。但是如果我尝试在我的 JS 中发出警报,那么在我的控制台中我收到以下错误:

java.lang.IllegalArgumentException: org.eclipse.yasson.internal.Marshaller.serializeRoot(Marshaller.java:118) 在 org.eclipse.yasson.internal.Marshaller.marshall(Marshaller.java) 的参数数量错误 [...] :76) 在 org.eclipse.yasson.internal.JsonBinding.toJson(JsonBinding.java:98)

标签: java

解决方案


推荐阅读