在
SpringMVC
中使用的是
Jackson API
实现对
JSON
格式数据处理。需要添加
Jackson
的
jar
包或者依赖。
1 处理请求中的 JSON 格式数据
在处理请求中的
JSON
格式数据时需要使用
@RequestBody
注解
1.1 @RequestBody
@RequestBody
注解可以将
JSON
格式的数据转为
Java
对象。但是要求
content-type
不是
默认的
application/x-www-form-urlcoded
编码的内容。一般情况下来说常用其来处理
application/json
类型。
![](https://img-blog.csdnimg.cn/20210910100009137.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5aSn5rKz5bGx5bed,size_20,color_FFFFFF,t_70,g_se,x_16)
2 处理响应中的 JSON 格式数据
将响应结果转换成
JSON
格式数据时,需要使用
@ResponseBody
注解
2.1 @ResponseBody
@ResponseBody
注解的作用是将处理请求方法返回的对象通过转换器转换为
JSON
格式
数据,同时写入到
response
对象的
body
区,通常用来返回
JSON
数据。
需要注意,在使用此注解之后不会再走视图解析器,而是直接将数据写入到输出流中,他的效果等同于通过 response 对象输出指定格式的数据。
如果处理请求方法返回的是
String
时,
@ResponseBody
注解不会进行
JSON
转换。响应的 Content-Type
为
text/plain;charset=ISO-8859-1
。
如果处理请求方法返回的是除了
String
类型以外的其他
Object
类型时,
@ResponseBody
注解会进行
JSON
转换。响应的
Content-Type
为
application/json
。
![](https://img-blog.csdnimg.cn/20210910100420887.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5aSn5rKz5bGx5bed,size_20,color_FFFFFF,t_70,g_se,x_16)
2.2 解决响应的 JSON 数据中文乱码问题