码迷,mamicode.com
首页 > 其他好文 > 详细

@RequestBody的使用

时间:2020-03-05 13:36:25      阅读:48      评论:0      收藏:0      [点我收藏+]

标签:json   post   const   amp   tail   mic   开放   map   col   

  背景:后端接口入参比较多时会选择使用对象去接收前端传过来的json数据(使用@RequestBody注解),在使用过程中有遇到一些关于请求格式存在问题服务器响应不太友好的现象,特做优化记载。

  问题

  做开放服务时有用到@RequestBody以复杂对象接收前端传过来的json数据,当前端传递给后端的json数据出现格式问题,返回的响应信息不友好,例如:

  后端对应的Controller:

  /**
     * 新建任务
     *
     * @param request
     * @return
     */
    @RequestMapping("addTaskInfo.do")
    @ResponseBody
    public Message<Object> addTaskInfo(@RequestBody TaskConfSaveParam param, HttpServletRequest request) {
        Message<Object> message = new Message<Object>();
        message.setData(JSON.toJSON(param));
        return message;
    }

 

  使用PostMan测试: 

 

  前端传递给后端的json数据:

       技术图片

 

 

  响应:

    技术图片

  优化:中心思想为 以String接收前端传过来的json数据,然后将接收到json串做转换,如果转换出错,则告诉用户 “JSON入参格式错误”

  @RequestBody直接以String接收前端传过来的json数据:

 

  后端对应的Controller:  

  /**
     * 新建任务
     *
     * @param request
     * @return
     */
    @RequestMapping("addTaskInfo.do")
    @ResponseBody
    public Message<Object> addTaskInfo(@RequestBody String paramStr, HttpServletRequest request) {
        Message<Object> message = new Message<Object>();

        Object paramJson = null;
        try {
            paramJson = JSONObject.parse(paramStr);
        } catch (JSONException e) {
            logger.error("error", e);
            message.setCode(FdataConstants.EXECUTE_FAILED_PARAMS_ERROR);
            message.setMsg("JSON入参格式错误:"+ExceptionUtils.getMessage(e));
            return message;
        }
        TaskConfSaveParam param = JSONObject.parseObject(paramStr, TaskConfSaveParam.class);

        message.setData(JSON.toJSON(param));
        return message;
    }

  

  使用PostMan测试: 

 

  前端传递给后端的json数据 & 响应:

  技术图片

   参考文档:https://blog.csdn.net/justry_deng/article/details/80972817

@RequestBody的使用

标签:json   post   const   amp   tail   mic   开放   map   col   

原文地址:https://www.cnblogs.com/bzq-nancy/p/12419406.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!