欢迎联系我QQ:932856012
放大
缩小

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

posted @ 2020-06-23 14:19  109肖玮昊  阅读(980)  评论(0编辑  收藏  举报