全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

详解springmvc之json数据交互controller方法返回值为简单类型

当controller方法的返回值为简单类型比如String时,该如何与json交互呢?

使用@RequestBody

比如代码如下:

@RequestMapping(value="/ceshijson",produces="application/json;charset=UTF-8")
@ResponseBody
public String ceshijson(@RequestBody String channelId) throws IOException{

 return channelId;

如果代码为上面这种情况时,前台发送json时,应该这样写(写法有很多,能用就行)

function channel(){
   //先获取选中的值
   var channelId = $("#channelId option:selected").val();
   //来判断发送的链接
   if(channelId ==2){


   $.ajax({
     url:"ceshijson",
     type:"post",
     dataType:'json',
     contentType:'application/json;charset=utf-8',
     data:JSON.stringify({'channelId':channelId}),
     success:function(data){
      alert(data.channelId);
     },
     error:function(XMLHttpRequest, textStatus, errorThrown){ 
     alert("Error") 
     alert(XMLHttpRequest.status); 
     alert(XMLHttpRequest.readyState); 
     alert(textStatus); 
     }
   });
   }
  }

这里需要特别注意:上篇也强调过,使用了@RequestBody时,它要求String channelId接收到数据为json字符串。也就是要是data写成这样: data:{‘channelId':channelId},就是错误的。因为这是json对象形式。

要是你不想使用JSON.stringify()这个函数,那就自己手动字符串拼接:

data:'{"channelId":'+channelId+'}'

这里还要注意channelId是双引号,不能写成单引号,因为这是json语法规则。你改成单引号,也就是

**错误写法

data:"{'channelId':"+channelId+"}"

这种形式,虽然可以传给后台,但是后台传回来的会出现undefined。也就是key必须要用双引号包围。

不使用@RequestBody

 @RequestMapping(value="/ceshijson",produces="application/json;charset=UTF-8")
 @ResponseBody
 public String ceshijson(String channelId) throws IOException{
  Map<String,Object> map = new HashMap<String,Object>();
   map.put("channelId", channelId);
   ObjectMapper mapper = new ObjectMapper();
   channelId = mapper.writeValueAsString(map);
  return channelId;
 }

前台代码

$.ajax({
   url:"ceshijson",
   type:"post",
   dataType:'json',
   //contentType:'application/json;charset=utf-8',
   data:"channelId="+channelId,
   success:function(data){
    alert(data);
   },
   error:function(XMLHttpRequest, textStatus, errorThrown){ 
     alert("Error") 
     alert(XMLHttpRequest.status); 
     alert(XMLHttpRequest.readyState); 
     alert(textStatus); 
    }
});

这种方式利用ObjectMapper中的writeValueAsString将Java对象转换为json字符串。

总结:这种方式,其实是没有多大的实际意思,因为一般接收数据不是这么接收的。只做了解!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# springmvc  # controller返回值  # springmvc返回值类型  # SpringBoot全局Controller返回值格式统一  # Spring MVC Controller返回值及异常的统一处理方法  # SpringMVC Controller 返回值的可选类型详解  # 详解利用SpringMVC拦截器控制Controller返回值  # SpringController返回值和异常自动包装的问题小结  # 这是  # 单引号  # 双引号  # 那就  # 有很多  # 就行  # 要用  # 这种情况  # 多大  # 该如何  # 转换为  # 只做  # 值为  # 大家多多  # 上篇  # 使用了  # return  # json  # String  # IOException 


相关文章: IOS倒计时设置UIButton标题title的抖动问题  用v-html解决Vue.js渲染中html标签不被解析的问题  导航网站建站方案与优化指南:一站式高效搭建技巧解析  三星网站视频制作教程下载,三星w23网页如何全屏?  C++用Dijkstra(迪杰斯特拉)算法求最短路径  如何打造高效商业网站?建站目的决定转化率  广州建站公司哪家好?十大优质服务商推荐  香港服务器网站推广:SEO优化与外贸独立站搭建策略  建站之星价格显示格式升级,你的预算足够吗?  网站微信制作软件,如何制作微信链接?  如何快速搭建个人网站并优化SEO?  如何在阿里云域名上完成建站全流程?  网站代码制作软件有哪些,如何生成自己网站的代码?  h5网站制作工具有哪些,h5页面制作工具有哪些?  网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?  建站之星后台搭建步骤解析:模板选择与产品管理实操指南  如何快速搭建高效简练网站?  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  平台云上自助建站如何快速打造专业网站?  南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?  建站之星在线客服如何快速接入解答?  如何选择高效可靠的多用户建站源码资源?  行程制作网站有哪些,第三方机票电子行程单怎么开?  电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?  ppt制作免费网站有哪些,ppt模板免费下载网站?  油猴 教程,油猴搜脚本为什么会网页无法显示?  如何高效利用200m空间完成建站?  定制建站是什么?如何实现个性化需求?  北京制作网站的公司,北京铁路集团官方网站?  如何选择美橙互联多站合一建站方案?  成都响应式网站开发,dw怎么把手机适应页面变成网页?  学校为何禁止电信移动建设网站?  如何快速使用云服务器搭建个人网站?  建站OpenVZ教程与优化策略:配置指南与性能提升  微网站制作教程,我微信里的网站怎么才能复制到浏览器里?  建站主机选购指南:核心配置优化与品牌推荐方案  如何通过万网虚拟主机快速搭建网站?  c# 在ASP.NET Core中管理和取消后台任务  如何用wdcp快速搭建高效网站?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  如何通过虚拟主机快速搭建个人网站?  微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?  如何快速辨别茅台真假?关键步骤解析  5种Android数据存储方式汇总  如何在VPS电脑上快速搭建网站?  如何设计高效校园网站?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  临沂网站制作企业,临沂第三中学官方网站?  宝塔建站助手安装配置与建站模板使用全流程解析  免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。