博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringMVC @RequestBody接收Json对象字符串
阅读量:4460 次
发布时间:2019-06-08

本文共 2223 字,大约阅读时间需要 7 分钟。

以前,一直以为在SpringMVC环境中,@RequestBody接收的是一个Json对象,一直在调试代码都没有成功,后来发现,其实 @RequestBody接收的是一个Json对象的字符串,而不是一个Json对象。然而在ajax请求往往传的都是Json对象,后来发现用 JSON.stringify(data)的方式就能将对象变成字符串。同时ajax请求的时候也要指定dataType: "json",contentType:"application/json" 这样就可以轻易的将一个对象或者List传到Java端,使用@RequestBody即可绑定对象或者List.

JavaScript 代码:

Java代码

  @RequestMapping(value = "saveUser", method = {RequestMethod.POST }})     @ResponseBody      public void saveUser(@RequestBody List
users) { userService.batchSave(users); }

使用API工具调用方法:

json数据

{"versionNumbern":"1.0","channel":"ios"}

java代码

   @PostMapping("/check_version")    @ApiOperation(value = "检测app版本信息", notes = "检测app版本信息")    public ResponseEntity
> detectVersion(@Validated @RequestBody DetectVersionRequestVM requestVM) { log.info("检测app版本信息: {}", JSON.toJSONString(requestVM)); DetectVersionResponseVM responseVM = appService.detectVersion(requestVM); if (responseVM == null) { return ResponseEntity.ok(new JsonResponseVM(new ErrorVM(ErrorConstants.ERR_VERSION_VAILD_FAIL_CODE, ErrorConstants.ERR_VERSION_VAILD_FAIL, Constants.RETCODE_FAIL))); } if (requestVM.getChannel().equals(Constants.CHANNEL_IOS)) { responseVM.setDownloadUrl(hxjInitConfig.getIosDownloadUrl()); } return new ResponseEntity
>(new JsonResponseVM(new ErrorVM(Constants.RETCODE_SUCCEED), responseVM), HttpStatus.OK); }

用于接收的对象,可以自定义校验规范

@ApiModelpublic class DetectVersionRequestVM {    @Size(max = 20, message = "手机app版本号长度不能大于20")    @ApiModelProperty(dataType = "java.lang.String", value = "版本号")    private String versionNumbern;     @Pattern(regexp = "(ios|android)")    @Size(max = 20, message = "渠道长度不能大于20")    @NotEmpty(message = "渠道号不能为空")    @ApiModelProperty(dataType = "java.lang.String", value = "类型: ios、android", example = "ios")    private String channel;    //get  set    @Override    public String toString() {        return "DetectVersionRequestVM{" +                "versionNumbern='" + versionNumbern + '\'' +                ", channel='" + channel + '\'' +                '}';    }}

 

转载于:https://www.cnblogs.com/jiafuwei/p/8279902.html

你可能感兴趣的文章
[倍增][最短路-Floyd][dp]
查看>>
SpringAOP用到了什么代理,以及动态代理与静态代理的区别
查看>>
利用STM32CubeMX来生成USB_HID_Mouse工程【添加ADC】(1)
查看>>
【leetcode】Populating Next Right Pointers in Each Node
查看>>
获取请求参数乱码的问题
查看>>
代码实现:判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称...
查看>>
Android客户端测试点
查看>>
Jquery:怎样让子窗体的div显示在父窗体之上
查看>>
01概率
查看>>
Shell脚本
查看>>
MatLab Load cv::Mat 导入数据
查看>>
html+css相关笔记(一)
查看>>
基于块流协议保证音频优先发送
查看>>
关于互联网的一些数据
查看>>
数据预处理:独热编码(One-Hot Encoding)
查看>>
python将对象名的字符串类型,转化为相应对象的操作方法
查看>>
【NLP新闻-2013.06.03】New Book Where Humans Meet Machines
查看>>
mongodb安装4.0(rpm)
查看>>
DispatcherServlet的url mapping为“/”时,对根路径访问的处理
查看>>
备忘pwnable.kr 之passcode
查看>>