返回json格式数据乱码

时间:2023-11-25 16:30:02

本文为博主原创,未经允许不得转载:

原本返回json格式数据的代码:

@ResponseBody
@RequestMapping(value = "getListByTime", method = { RequestMethod.POST, RequestMethod.GET })
public String getListByTime(@RequestParam String aoData,String sEcho,HttpServletRequest request) throws Exception { AoData paramAoData = new AoData(aoData); Detail cameraDetail = new Detail ();
detail.setDisplatStart(paramAoData.getiDisplayStart());
detail.setDisplayLength(paramAoData.getiDisplayLength());
List<Detail> list = dataService.getListByTime(detail);
int size = list.size();
String[][] data = new String[size][];
for (int i = ; i < size; i++) {
Detail info = list.get(i);
data[i] = info.values(); }
int total = dataService.getCameraByTimeTotal(detail); return JSonUtils.toJSon(new DataTableReturnObject(total, total, sEcho, data));
}

以上代码断点从数据库中查询的数据没有乱码,但在前台接收的时候乱码。

解决方法:

    @ResponseBody
@RequestMapping(value = "getListByTime", method = { RequestMethod.POST, RequestMethod.GET })
public void getListByTime(@RequestParam String aoData,String sEcho,HttpServletRequest request) throws Exception { AoData paramAoData = new AoData(aoData); Detail cameraDetail = new Detail ();
detail.setDisplatStart(paramAoData.getiDisplayStart());
detail.setDisplayLength(paramAoData.getiDisplayLength());
List<Detail> list = dataService.getListByTime(detail);
int size = list.size();
String[][] data = new String[size][];
for (int i = ; i < size; i++) {
Detail info = list.get(i);
data[i] = info.values(); }
int total = dataService.getCameraByTimeTotal(detail); PrintWriter out = null;
try
{
String result = JSonUtils.toJSon();
out = response.getWriter();
out.print(result);
out.flush();
}
catch (Exception e) {
LOG.error("error",e);
}
finally
{
if (out != null) {
out.close();
}
}
}

解决方案为:将对象通过流的形式进行传输给前台,PrintWriter向文本输出流打印对象的格式化表示形式。