Spring MVC controller中返回json中午数据乱码,及HashMap转化json数据
2015-06-03 14:58
756 查看
返回json中文乱码,是没有定义好返回数据的格式,导致服务器的编码和浏览器解析的编码不一致。所以只需要定义好返回的编码格式以及页面接收的编码格式即可。
JSP页面中定义的编码格式是:
前台请求跨域的jsonp数据代码如下:
后台定义的编码格式也需要是utf-8,同时返回的json数据量很大时,使用HashMap封装,再转化为json数据,这样条理比较清晰,代码更易更改。全部代码如下:
JSP页面中定义的编码格式是:
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
前台请求跨域的jsonp数据代码如下:
$.ajax({ url:path, method:'get', data:{name:x}, dataType:'jsonp', jsonp:'callback', jsonpCallback:'jsonpcallback', success:function(json){ var addRow; for(var i=0;i<json.length;i++) { addRow = "<tr><td>"+json[i].name+"</td>"+"<span style="font-family: Arial, Helvetica, sans-serif;"><td>"+json[i].area+"</td>"+</span><span style="font-family: Arial, Helvetica, sans-serif;"></tr>";</span> $("#telesOpenSession").append(addRow); } }, error:function(){ alert("get the teles data error"); } });
后台定义的编码格式也需要是utf-8,同时返回的json数据量很大时,使用HashMap封装,再转化为json数据,这样条理比较清晰,代码更易更改。全部代码如下:
@RequestMapping(value = "/callback",method = RequestMethod.GET) public void callback(HttpServletResponse response,HttpServletRequest request,String name) throws Exception{ //System.out.println(name); String callback=request.getParameter("callback"); String jsonp = callback+"(["; ObjectMapper mapper = new ObjectMapper(); HashMap<String,String> map = new HashMap<String,String>(); map.put("name","丽江"); map.put("area","1576423"); jsonp +=mapper.writeValueAsString(map)+","; map.clear(); map.put("name","大埔"); map.put("area","435746753"); jsonp +=mapper.writeValueAsString(map)+","; jsonp +="])"; System.out.println(jsonp); try { response.setCharacterEncoding("UTF-8"); //设置编码格式 PrintWriter out; out = response.getWriter(); out.print(jsonp); //将json数据写入流中 out.flush(); out.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } //获取写入对象 }
相关文章推荐
- Java的日期格式化常用方法
- 使用Spring和Hibernate做一个留言板。
- spring+mybatis+atomikos 实现JTA事务
- Java中的instanceof关键字
- spring事件派发
- java I/O 操作及优化建议
- Eclipse程序打包
- 学习 Activiti5.13与springMVC整合,自学001期
- JAVA编程思想学习总结:第十四章类型信息
- Java中的集合--初级
- Java中对象创建与引用
- java程序作业代码
- 我们打赌:这个注解很快就会出现在JDK里面
- velocity 显示List和Map方法
- 致我曾经敲过的代码——初涉JAVA 自定义链表的实现
- Eclipse中配置JAD、JADCLIPSE反编译器
- Eclipse常用的快捷方式
- Spring-程序中获取注册bean的方式
- java的Excel的导入导出功能
- spring @component的作用