java - 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)
解决方案
推荐阅读
- c# - 如何将 CheckBoxColumn 添加到自动创建的 DataGrid 中
- mysql - 如何使用 MySql 从相关表中获取用户的详细信息?
- java - 用于绘制图像的 Java Graphics2D 方法,其中使用了像素 alpha 值但颜色值被替换为给定的颜色
- regex - 2位数字的简化正则表达式
- snapchat - 我可以用 lens studio 制作一个 snappables 的 snapchat 游戏吗?
- sql - 如何通过 SQL 将逗号分隔的列与非唯一 ID 列拆分为行
- python - 为互相关重新索引数组
- r - 基于多个分层字段和标准的子集数据
- matplotlib - matplotlib qt wsl ubuntu qt5
- c++ - 如何使用自定义比较器初始化作为 std::set 的类数据成员