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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM