我尝试从我的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;
}
如果我采用sysout,则一切正常-正确的数据。 但是,如果我尝试在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)