返回json格式数据乱码详解编程语言

      原本返回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 = 0; 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 = 0; 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向文本输出流打印对象的格式化表示形式。

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/16851.html

(0)
上一篇 2021年7月19日 19:39
下一篇 2021年7月19日 19:39

相关推荐

发表回复

登录后才能评论