Spring json @ResponseBody - 返回一个命名变量



我有一个 Spring 控制器方法,该方法正确地将 JSON 中的对象集合返回给客户端:

@RequestMapping(value="/admin/rawreads/unknowntags", method=RequestMethod.GET)
public @ResponseBody Collection<RawRead> getRawReadsWithUnknownTag() {
    ....
}

我正在尝试集成一个名为DataTables的jQuery插件/插件。DataTables 可以处理为我获取数据并在页面中填充表的异步请求,但它要求在具有特定名称"aaData"的数组中返回数据,而不是当前格式:

[{"oid":149452,"date":1233076733000,"readerId":"811210008","recordNo":226,"tagCode":"0103A003C0","reader":null,"guard":null,"checkpoint":null},{"oid":149453,"date":1233076734000,"readerId":"8112100 .... etc]
数据表

文档中数据表的建议返回格式:

{
 "sEcho": 1,
 "iTotalRecords": "n",
 "iTotalDisplayRecords": "n",
 "aaData": [
 [object1][object2].... etc
 ]
}

如何更改我的 Java 方法以数据表所需的格式返回数据 - 命名数组?

编辑:尝试将变量放入 HashMap 服务器端,更接近我需要的:

{"iTotalDisplayRecords":3050,"iTotalRecords":3050,"aaData":   
  [{"oid":149452,"date":1233076733000, ...<snip>},{...}]
}

为数据表创建一个格式正确的单独类,具有sEcho,itotalrecords,ittotaldisplayrecords的字段,然后是一个名为aaData的数组。

然后通过 jason 返回这个类,然后按照你建议的格式返回。

class TableDTO
{
 int sEcho;
 int iTotalRecords;
 int itotalDisplayRecords;
 array[] aaData;
}

显然,将数据分配给这些字段和适当的访问者等!

您必须再编写一个 TotalDisplayRecords 类,并且它必须包含数组类。之后,返回 TotalDisplayRecords 对象。

最新更新