详解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无缝贴图怎么调?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?