Ajax JSON 中文乱码

Ajax JSON 中文乱码 List转JSON,JSON转String

我在使用级联下拉框的时候用到Ajax技术向后台请求子框的信息。但是出现了中文乱码的问题,我尝试了3种方法,发现了一条做最好的解决方法。

思路:

1.在前台获取父框的ID,通过ajax提交到后台

2.后台根据父框ID获取子框List集合

3.将List集合转换成JSON格式

4.将JSON格式转换为字符串(String)格式,并输入到response的write里

5.在前台获取字符串,在转换成JSON格式,并通过js打印输出

后台Controller

@RequestMapping("getSonBoard")
    @ResponseBody
    public void getSonBoard(int id, HttpServletResponse response){
        //处理乱码问题
        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");
        List sonboards=boardService.getSonBoardsByFaterBoardId(id);
        //JSON包使用org.json.*;
        JSONArray jsonArray=new JSONArray();
        //将LIST集合转换为json格式
        for(Sonboard board:sonboards){
            JSONObject object=new JSONObject();
            object.put("id",board.getSonboardId());
            object.put("name",board.getBoardName());
            jsonArray.put(object);
        }

        try {
            //将json的字符串形式写进response里
            response.getWriter().print(jsonArray.toString());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

前台


				选择版块
				
					
请选择所要发帖的版块

                    
                    

你可能感兴趣的:(Ajax JSON 中文乱码)