查了下网上的一些资料,感觉比较复杂,这里,我这几使用两种很简单的办法解决了中文乱码问题。

Spring版本:3.2.2.RELEASE
Jackson JSON版本:2.1.3
解决思路:Controller的方法中直接通过response向网络流写入String类型的json数据。
使用 Jackson 的 ObjectMapper 将Java对象转换为String类型的JSON数据。
为了避免中文乱码,需要设置字符编码格式,例如:UTF-8、GBK 等。
代码如下:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import com.fasterxml.jackson.databind.ObjectMapper; //Jsckson JSON Processer
import java.util.*;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.*;
import java.io.PrintWriter;
import java.nio.charset.Charset;
/**
* Created with IntelliJ IDEA 12.0
* Date: 2013-03-15
* Time: 16:17
*/
@Controller
public class HomeController {
@RequestMapping(value="/Home/writeJson", method=RequestMethod.GET)
public void writeJson(HttpServletResponse response)
{
ObjectMapper mapper = new ObjectMapper();
HashMap<String,String> map = new HashMap<String,String>();
map.put("1","张三");
map.put("2","李四");
map.put("3","王五");
map.put("4", "Jackson");
String json = "";
try
{
json = mapper.writeValueAsString(map);
System.out.println(json);
//方案二
ServletOutputStream os = response.getOutputStream(); //获取输出流
os.write(json.getBytes(Charset.forName("GBK"))); //将json数据写入流中
os.flush();
//方案一
response.setCharacterEncoding("UTF-8"); //设置编码格式
response.setContentType("text/html"); //设置数据格式
PrintWriter out = response.getWriter(); //获取写入对象
out.print(json); //将json数据写入流中
out.flush();
}
catch(Exception e)
{
e.printStackTrace();
}
//return "home";
}
}
还有一种方法:设置 @RequestMapping 的 produces 参数,代码如下所示:
思路:使用 @ResponseBody 注解直接返回json字符串,为了防止中文乱码,将@RequestMapping 的 produces 参数设置成"text/html;charset=UTF-8" 即可。
@RequestMapping(value="/Home/writeJson", method=RequestMethod.GET, produces = "text/html;charset=UTF-8")
@ResponseBody
public Object writeJson(HttpServletResponse response)
{
ObjectMapper mapper = new ObjectMapper();
HashMap<String,String> map = new HashMap<String,String>();
map.put("1","张三");
map.put("2","李四");
map.put("3","王五");
map.put("4", "Jackson");
String json = "";
try
{
json = mapper.writeValueAsString(map);
System.out.println(json);
}
catch(Exception e)
{
e.printStackTrace();
}
return json;
}
运行结果如下图所示:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# spring
# mvc
# json
# 乱码
# spring返回json
# 返回json
# SpringMVC中解决@ResponseBody注解返回中文乱码问题
# Spring MVC Controller返回值及异常的统一处理方法
# SpringMVC返回的ResponseEntity出现乱码及解决
# 所示
# 李四
# 王五
# 两种
# 我这
# 很简单
# 转换为
# 为了避免
# 为了防止
# 大家多多
# 如下图
# 设置成
# 数据格式
# 解决了
# 网上
# Autowired
# annotation
# factory
# Model
# ui
相关文章:
如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?
如何通过cPanel快速搭建网站?
南宁网站建设制作定制,南宁网站建设可以定制吗?
如何通过VPS建站实现广告与增值服务盈利?
红河网站制作公司,红河事业单位身份证如何上传?
北京的网站制作公司有哪些,哪个视频网站最好?
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
建站之星代理平台如何选择最佳方案?
c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】
建站ABC备案流程中有哪些关键注意事项?
如何快速搭建支持数据库操作的智能建站平台?
广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?
建站之星安装后如何配置SEO及设计样式?
高防服务器如何保障网站安全无虞?
高端建站如何打造兼具美学与转化的品牌官网?
成都响应式网站开发,dw怎么把手机适应页面变成网页?
如何获取开源自助建站系统免费下载链接?
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
,南京靠谱的征婚网站?
自助网站制作软件,个人如何自助建网站?
如何选择靠谱的建站公司加盟品牌?
如何快速生成专业多端适配建站电话?
建站主机是否等同于虚拟主机?
如何有效防御Web建站篡改攻击?
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
如何访问已购建站主机并解决登录问题?
重庆市网站制作公司,重庆招聘网站哪个好?
如何快速打造个性化非模板自助建站?
如何在云主机上快速搭建网站?
移民网站制作流程,怎么看加拿大移民官网?
网站制作壁纸教程视频,电脑壁纸网站?
如何通过FTP空间快速搭建安全高效网站?
盘锦网站制作公司,盘锦大洼有多少5G网站?
c++ stringstream用法详解_c++字符串与数字转换利器
建站主机选购指南:核心配置与性价比推荐解析
建站上传速度慢?如何优化加速网站加载效率?
小说建站VPS选用指南:性能对比、配置优化与建站方案解析
网站制作的方法有哪些,如何将自己制作的网站发布到网上?
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
nginx修改上传文件大小限制的方法
黑客如何通过漏洞一步步攻陷网站服务器?
如何在Golang中处理模块冲突_解决依赖版本不兼容问题
电商平台网站制作流程,电商网站如何制作?
教程网站设计制作软件,怎么创建自己的一个网站?
如何在新浪SAE免费搭建个人博客?
,交易猫的商品怎么发布到网站上去?
如何在服务器上配置二级域名建站?
建站主机如何选?性能与价格怎样平衡?
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
*请认真填写需求信息,我们会在24小时内与您取得联系。