• Springboot返回json格式


    Springboot返回json格式

    1、技术概述

    该技术是解决springboot如何返回json格式的问题。学习该技术的起因是我们组的项目需要接口返回json格式,有时还需要多重嵌套返回要求的格式。技术难点
    主要在返回嵌套json格式,如何正确的装配并返回也是一个难点。

    2、技术详述

    核心是使用RestController关键字

    @RestController
    public class UserController {
    
      @Autowired
      private UserService userService;
    
      /*用户登录
      *@成功返回true
      * */
      @PostMapping(value = "/login")
      public HashMap<String, Object> login(@RequestBody User user){
          return  userService.loginCheck(user);
      }
    
      /*用户注册
      * @成功返回true
      * */
      @ResponseBody
      @PostMapping(value = "/register")
      public HashMap<String, Object> register(@RequestBody User user){
          return userService.registerCheck(user);
      }
    
      /*修改个人信息
      * 成功返回true
      * */
      @ResponseBody
      @PostMapping(value = "/user/update")
      public HashMap<String,Object> update(@RequestBody User user){
          return userService.updateCheck(user);
      }
    
      /*修改密码
      * 成功返回true
       */
      @ResponseBody
      @PostMapping(value = "/user/update/password")
      public HashMap<String,Object> updatePassword(@RequestBody User user){
          return userService.updatePassword(user);
      }
    }  
    

    在service中返回Map
    将要返回的信息写入map中,如以下代码中的result.put就是写的过程。可以将对象写入map中,如result.put("data",user);

    @Service
    public class UserService {
        @Autowired
        private UserRepository userRepository;
    	@Transactional(rollbackFor = Exception.class)
        public HashMap<String,Object> updatePassword(User user){
            User user1 = userRepository.findByUserId(user.getUserId());
            HashMap<String,Object> result = new HashMap<>();
            try {
                if (user1!=null){
                    user1.setPassword(user.getPassword());
                    userRepository.save(user1);
                    result.put("status",1);
                    result.put("msg","修改成功");
                }
                else {
                    result.put("status",0);
                    result.put("msg","修改失败");
                }
            }
            catch (Exception e){
                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                result.put("status",0);
                result.put("msg","修改失败");
                return result;
            }
            return  result;
        }
    }
    

    以上方法即可解决返回json格式的问题

    3、技术使用中遇到的问题和解决过程。

    问题:遇到的问题如何在嵌套json中读取数据。
    解决方法:使用List读取最外层的标签,层层剖析。

     List<List> list = (List<List>) submitOuter.getContent().get("tableData");
                    for (int i = 0; i < list.size(); i++) {
                        String str = (String) list.get(i).get(list.get(i).size()-1);
                        int id = (int) list.get(i).get(0);
                        GroupSuggestion groupSuggestion = new GroupSuggestion();
                        groupSuggestion.setSuggestion(str);
                        groupSuggestion.setEvaluationOuterId(submitOuter.getEvaluationOuterId());
                        groupSuggestion.setGroupId(id);
                        groupSuggestionRepository.save(groupSuggestion);
                    }
    

    4、总结。

    Springboot下的json数据格式处理不是特别复杂,主要是灵活运用Map、List等方法对数据处理后,返回json格式。

    5、列出参考文献、参考博客(标题、作者、链接)。

    参考文献:
    https://www.cnblogs.com/hbolin/p/10657388.html

  • 相关阅读:
    解决“google快照无法打开”的简单而有效的方法~
    在Struts2里面嵌入Spring
    HDU
    设计模式大总结(二)
    Node.js入门笔记
    草图检索和识别[开源]
    2019-10-31-VisualStudio-断点调试详解
    2019-10-31-VisualStudio-断点调试详解
    2019-9-2-C#-设计模式-责任链
    2019-9-2-C#-设计模式-责任链
  • 原文地址:https://www.cnblogs.com/xwh130/p/13171967.html
Copyright © 2020-2023  润新知