详解springmvc之json数据交互controller方法返回值为简单类型
发布时间 - 2026-01-11 01:00:16 点击率:次当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
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何使用Eloquent进行子查询
Python自动化办公教程_ExcelWordPDF批量处理案例
太平洋网站制作公司,网络用语太平洋是什么意思?
如何用花生壳三步快速搭建专属网站?
Laravel如何实现事件和监听器?(Event & Listener实战)
如何在阿里云域名上完成建站全流程?
香港服务器建站指南:免备案优势与SEO优化技巧全解析
为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】
悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤
高防服务器如何保障网站安全无虞?
Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】
linux写shell需要注意的问题(必看)
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册
Python文件流缓冲机制_IO性能解析【教程】
Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言
html5audio标签播放结束怎么触发事件_onended回调方法【教程】
如何利用DOS批处理实现定时关机操作详解
Laravel如何发送系统通知?(Notification渠道示例)
如何用5美元大硬盘VPS安全高效搭建个人网站?
Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程
如何快速搭建高效简练网站?
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
JavaScript如何实现继承_有哪些常用方法
公司网站制作价格怎么算,公司办个官网需要多少钱?
详解Android中Activity的四大启动模式实验简述
Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】
重庆市网站制作公司,重庆招聘网站哪个好?
java获取注册ip实例
🚀拖拽式CMS建站能否实现高效与个性化并存?
微信小程序 canvas开发实例及注意事项
Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置
Laravel如何操作JSON类型的数据库字段?(Eloquent示例)
Laravel怎么实现支付功能_Laravel集成支付宝微信支付
Win11怎么开启自动HDR画质_Windows11显示设置HDR选项
zabbix利用python脚本发送报警邮件的方法
如何快速生成专业多端适配建站电话?
php 三元运算符实例详细介绍
如何基于云服务器快速搭建个人网站?
如何在香港免费服务器上快速搭建网站?
Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案
如何快速完成中国万网建站详细流程?
Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理
Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】
如何快速搭建高效服务器建站系统?
如何在万网利用已有域名快速建站?
如何在景安云服务器上绑定域名并配置虚拟主机?
如何在腾讯云服务器快速搭建个人网站?
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?

