首页 > 其他分享 >使用 @ResponseBody 注解直接返回json字符串结果中文出现乱码

使用 @ResponseBody 注解直接返回json字符串结果中文出现乱码

时间:2023-05-07 19:33:55浏览次数:43  
标签:RequestBody SpringMVC 乱码 ResponseBody json str 注解

在类上直接使用 @RestController ,这样子,里面所有的方法都只会返回 json 字符串了,不用再每一个都添加@ResponseBody !我们在前后端分离开发中,一般都使用 @RestController ,十分便捷!

@RestController
public class UserController {

//produces:指定响应体返回类型和编码
@RequestMapping(value = "/json1")
public String json1() throws JsonProcessingException {
//创建一个jackson的对象映射器,用来解析数据
ObjectMapper mapper = new ObjectMapper();
//创建一个对象
User user = new User("1号", 3, "男");
//将我们的对象解析成为json格式
String str = mapper.writeValueAsString(user);
//由于@ResponseBody注解,这里会将str转成json格式返回;十分方便
return str;
}

}

 

 

@RequestMapping("/json3")
public String json3() throws JsonProcessingException {

ObjectMapper mapper = new ObjectMapper();

//创建时间一个对象,java.util.Date
Date date = new Date();
//将我们的对象解析成为json格式
String str = mapper.writeValueAsString(date);
return str;
}

 

我想向请求方返回json数组,返回的内容里有中文,结果出现中文变成了乱码??号,

 

 

这里写一下解决方法

设置 @RequestMapping 的 produces 参数,代码如下所示:

思路:使用 @ResponseBody 注解直接返回json字符串,为了防止中文乱码,将@RequestMapping 的 produces 参数设置成"text/html;charset=UTF-8" 即可。

 

结果如下

 

小结

SpringMVC接收JSON数据的实现步骤为:

(1)导入jackson包

(2)使用PostMan发送JSON数据

(3)开启SpringMVC注解驱动,在配置类上添加@EnableWebMvc注解

(4)Controller方法的参数前添加@RequestBody注解

 

知识点1:@EnableWebMvc

名称@EnableWebMvc
类型 ==配置类注解==
位置 SpringMVC配置类定义上方
作用 开启SpringMVC多项辅助功能

知识点2:@RequestBody

名称@RequestBody
类型 ==形参注解==
位置 SpringMVC控制器方法形参定义前面
作用 将请求中请求体所包含的数据传递给请求参数,此注解一个处理器方法只能使用一次

@RequestBody与@RequestParam区别

  • 区别

    • @RequestParam用于接收url地址传参,表单传参【application/x-www-form-urlencoded】

    • @RequestBody用于接收json数据【application/json】

  • 应用

    • 后期开发中,发送json格式数据为主,@RequestBody应用较广

    • 如果发送非json格式数据,选用@RequestParam接收请求参数

 

标签:RequestBody,SpringMVC,乱码,ResponseBody,json,str,注解
From: https://www.cnblogs.com/4444Murphy/p/17379907.html

相关文章

  • post提交中文数据出现乱码问题
    POST发送参数发送请求与参数:接收参数:和GET一致,不用做任何修改@ControllerpublicclassUserController{​  @RequestMapping("/commonParam")  @ResponseBody  publicStringcommonParam(Stringname,intage){    System.out.println("普通参数传递......
  • 在web中使用json json异常
    今天在web中使用Jacjson将后端对象转换为json类型传输,在pom中导入依赖,代码中也可以引用,启动tomcat后发现启动失败,报jackson的异常。以为是jacson和spring的版本冲突问题,换版本,也是不能启动。换了fastjson后在代码中导入包,发现不能正常弹出方法引用,突然发觉,可能是tomcat的lib目录没......
  • C# 读取gb2312文本乱码
    'gb2312'isnotasupportedencodingname.Forinformationondefiningacustomencoding,seethedocumentationfortheEncoding.RegisterProvidermeth... stringPath=@"E:\SQLQuery.sql";Encoding.RegisterProvider(CodePages......
  • shell jq处理json字符串
    1.1工具介绍自己用shell处理json字符串的时候,开发输入格式的不通会导致解析字符串有问题,所以这里用到了jq工具jq是一款命令行下处理JSON数据的工具。其可以接受标准输入,命令管道或者文件中的JSON数据,经过一系列的过滤器(filters)和表达式的转后形成我们需要的数据结构并将......
  • 6-解决Tomcat服务器在DOS命令窗口中的乱码问题(控制台乱码)
    1.Tomcat乱码Tomcat刚启动时的样子,很明显乱码了2.解决Tomcat乱码将CATALINA_HOME/conf/logging.properties文件中的内容修改如下:java.util.logging.ConsoleHandler.encoding=GBK下一步修改成功,演示:......
  • struts2+Spring+Hibernate+Jquery (json)
          Struts2文件的上传和下载http://wing929.javaeye.com/blog/216118基于struts+spring+hibernate+jquery的jmesa的分页实现样例http://wing929.javaeye.com/blog/216292http://hi.baidu.com/angel_lishiwen/blog/item/cf266627fcb59327d4074288.html stru......
  • Struts2+extjs (Json)
            web开发过程中,经常需要使用Ajax进行数据的交互。ExtJs表单提交默认使用异步的方式,若使用Struts2的Action进行数据的处理,则需要返回一个Json数据客户端才会收到服务器的处理结果,我们使用jsonplugin插件从Action中返回结果给用户,下面我们就来实现这一方法: 1、下......
  • 关于docker的/etc/docker/key.json文件说明
    对于刚安装完docker,是没有/etc/docker/key.json这个文件的,也不会有/etc/docker/目录 但是当我们启动或者重启docker后,就会自动创建上面的目录,以及生成/etc/docker/key.json文件[root@qq-5201351~]#systemctlrestartdocker关于/etc/docker/key.json这个文件,有如下几......
  • JSONP跨域的原理解析
    JavaScript是一种在Web开发中经常使用的前端动态脚本技术。在JavaScript中,有一个很重要的安全性限制,被称为“Same-OriginPolicy”(同源策略)。这一策略对于JavaScript代码能够访问的页面内容做了很重要的限制,即JavaScript只能访问与包含它的文档在同一域下的内容。 JavaScript这......
  • 提取最新的各国疫情数据中json字符串
    1.正则表达式提取json字符串:   -----------------------------------------------------------------初始数据-----------------------------------------------------------------try{window.fetchIndexMallList={"success":true,"errorCode":0,"result......