简介

springmvc对json的前后台传输做了很好封装,避免了重复编码的过程,下面来看看常用的@ResponseBody和@RequestBody注解
添加依赖
springmvc对json的处理依赖jackson
<dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-asl</artifactId> <version>1.9.11</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.11</version> </dependency>
xml配置
<mvc:annotation-driven />//不要忘了命名空间配置
@ResponseBody
如果传输的是单层json对象,我们后台可以直接用 @RequestParam接收
$.ajax({
type : "post",
dataType : "json",
url : "/testRequestBody",
data:{
name:"韦德",
age:35
},
success : function(result) {
}
});
@RequestMapping("/testRequestBody")
public String testRequestBody(@RequestParam Map<String, Object> map) {
System.out.println(map);// {name=韦德, age=35}
return "index";
}
如果传输的是多层嵌套json对象,这个时候会就会出现数据丢失问题
@ResponseBody很好的解决了这个问题,它会把前台传输过来的json转化为后台对应的对象
$.ajax({
type : "post",
dataType : "json",
url : "/testRequestBody",
contentType:"application/json",
data:JSON.stringify({
name:"韦德",
win:[2006,2012,2013],
age:35
}),
success : function(result) {
}
});
@RequestMapping("/testRequestBody")
public String testRequestBody(@RequestBody Map<String, Object> map) {
System.out.println(map);//{name=韦德, win=[2006, 2012, 2013], age=35}
return "index";
}
需要注意的是前台需要指定contentType为"application/json"
同时要把json对象转化为String,否则后台不能识别
@ResponseBody
ajax请求返回json格式,往常我们可以这样做
private void writeJson(HttpServletResponse response, Object object) {
String json = JSON.toJSONString(object);
response.setCharacterEncoding("UTF-8");
response.setContentType("application/json; charset=utf-8");
PrintWriter out = null;
try {
out = response.getWriter();
out.write(json);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (out != null) {
out.close();
}
}
}
这个时候 @ResponseBody就派上用场了,只需要一个注解,全部搞定
$.ajax({
type : "post",
dataType : "json",
url : "/testResponseBody",
success : function(result) {
console.info(result);
}
});
@RequestMapping("/testResponseBody")
@ResponseBody
public Map<String, Object> testRequestBody() {
Map<String, Object> result = new HashMap<String, Object>();
result.put("name", "韦德");
result.put("age", 35);
return result;
}
前台console输出
{
"age": 35,
"name": "韦德"
}
总结
在网上看到很不错的流程图,作为总结吧
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# responsebody注解
# requestbody注解
# responsebody注解作用
# 解读@RequestBody的正确使用方法
# 快速解决SpringMVC @RequestBody 用map接收请求参数的问题
# 详解SpringMVC @RequestBody接收Json对象字符串
# @ResponseBody 和 @RequestBody 注解的区别
# SpringMVC restful 注解之@RequestBody进行json与object转换
# springmvc @RequestBody String类型参数的使用
# 关于Springboot | @RequestBody 接收到的参数对象属性为空的问题
# Springboot拦截器如何获取@RequestBody参数
# 亲测SpringBoot参数传递及@RequestBody注解---踩过的坑及解决
# SpringBoot中@RequestBody的伪表单提交场景
# 的是
# 韦德
# 很好
# 这个时候
# 转化为
# 就会
# 这个问题
# 要把
# 我们可以
# 这样做
# 来看看
# 很不错
# 可以直接
# 只需要
# 会把
# 需要注意
# 大家多多
# 往常
# 不要忘了
# 派上
相关文章:
如何在云虚拟主机上快速搭建个人网站?
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
制作公司内部网站有哪些,内网如何建网站?
如何选择域名并搭建高效网站?
如何访问已购建站主机并解决登录问题?
如何用狗爹虚拟主机快速搭建网站?
巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
如何在阿里云香港服务器快速搭建网站?
建站之星代理平台如何选择最佳方案?
如何在IIS管理器中快速创建并配置网站?
制作电商网页,电商供应链怎么做?
建站VPS能否同时实现高效与安全翻墙?
沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?
建站之星×万网:智能建站系统+自助建站平台一键生成
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
已有域名如何免费搭建网站?
css网站制作参考文献有哪些,易聊怎么注册?
建站之星各版本价格是多少?
如何快速选择适合个人网站的云服务器配置?
定制建站如何定义?其核心优势是什么?
宝塔新建站点为何无法访问?如何排查?
微信h5制作网站有哪些,免费微信H5页面制作工具?
网站制作公司排行榜,抖音怎样做个人官方网站
建站之星客服服务时间及联系方式如何?
建站主机空间推荐 高性价比配置与快速部署方案解析
家庭建站与云服务器建站,如何选择更优?
网站制作知乎推荐,想做自己的网站用什么工具比较好?
如何通过免费商城建站系统源码自定义网站主题与功能?
子杰智能建站系统|零代码开发与AI生成SEO优化指南
香港服务器选型指南:免备案配置与高效建站方案解析
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
如何在景安服务器上快速搭建个人网站?
网站制作壁纸教程视频,电脑壁纸网站?
如何用5美元大硬盘VPS安全高效搭建个人网站?
淘宝制作网站有哪些,淘宝网官网主页?
香港服务器建站指南:免备案优势与SEO优化技巧全解析
香港服务器租用每月最低只需15元?
建站之星如何快速生成多端适配网站?
建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南
如何制作一个表白网站视频,关于勇敢表白的小标题?
常州企业建站如何选择最佳模板?
,石家庄四十八中学官网?
网站企业制作流程,用什么语言做企业网站比较好?
如何零基础开发自助建站系统?完整教程解析
杭州银行网站设计制作流程,杭州银行怎么开通认证方式?
如何通过多用户协作模板快速搭建高效企业网站?
网站微信制作软件,如何制作微信链接?
如何确认建站备案号应放置的具体位置?
如何在建站之星网店版论坛获取技术支持?
*请认真填写需求信息,我们会在24小时内与您取得联系。