当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小时内与您取得联系。