如何连接两个数组,然后将结果作为json返回给datatables?
我正在转换一个工作的datatables以包含服务器端处理,并且一直在从java服务器端返回正确的数组。当前返回的数组是:
List<YthMmbrSectDtls> ymList;
示例数据为:
[{"youthMemberID":"MTQ5","surname":"Tendon","firstName":"Achilles"}]
对于datatables服务器端,我需要在返回的json的开头包含额外的信息,例如:
{"draw":9, "recordsTotal:57", "recordsFiltered:57"[...]}
所以我回来了:
{"draw":9, "recordsTotal:57", "recordsFiltered:57","data":[{"youthMemberID":"MTQ5","surname":"Tendon","firstName":"Achilles"}]}
至少这是我通过阅读手册和观看视频的理解。
我现在的代码是:
List<YthMmbrSectDtls> ymList;
String[] dtInfo = {"draw", "recordsTotal", "recordsFiltered"};
ymList = MySQLConnection.getYouthMmbrAllDtls(archived);
//Test to be replaced by database call, as per above
dtInfo[0] = "9";
dtInfo[1] = "57";
dtInfo[2] = "57";
if (ymList == null || ymList.isEmpty()) {
response.sendError(HttpServletResponse.SC_BAD_REQUEST, "No members.");
} else {
System.out.println("ymList: " + ymList);
String json = new Gson().toJson(ymList);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(json);
}
1条答案
按热度按时间eh57zj3b1#
有多种不同的解决方法:
修改jsonelement树
你可以先用
Gson.toJsonTree(Object)
转换ymList
到内存中的JsonArray
然后把它包在一个盒子里JsonObject
在其中添加dtInfo
属性:在单独的类中 Package 数据
或者您可以创建一个单独的类,例如。
DtInfo
,它包含属性和数据,然后让gson序列化。这种方法可能更有效,因为没有创建jsonelement树的中间步骤。然后像这样创建json:
还请注意,通过存储
Gson
示例static final
现场。gson是线程安全的(请参阅类文档),这样它将缓存内部用于将对象转换为json的类型适配器。此外,gson还提供
toJson
接受Appendable
. 因此你可以通过考试response.getWriter()
这些gson方法避免了创建中间String
json的表示。