最近在項目中遇到了一個讓人煩惱的問題,無法將DTO對象從JSON串中解析出來。經過一番研究,終于找到了解決方案。
public class UserDTO { private Long id; private String name; // getter、setter } public class UserController { @PostMapping("/users") public void addUser(@RequestBody UserDTO userDTO) { // 處理代碼 } }
在上述代碼中,我們定義了一個UserDTO類,用于接收POST請求中的JSON參數。然后在UserController中的addUser方法中使用了@RequestBody注解將JSON參數映射為UserDTO對象。
然而,當我們在使用Postman測試接口時,卻發現JSON參數始終無法正確的解析為UserDTO對象。經過查閱資料及排查后,發現了問題所在:UserDTO類中缺少無參構造函數。
public class UserDTO { private Long id; private String name; public UserDTO() { } // getter、setter }
解決問題的方式非常簡單,就是在UserDTO類中新增一個無參構造函數,即可正確的解析JSON參數為UserDTO對象。
總之,當我們遇到無法將DTO對象從JSON串解析出來時,一定要檢查DTO類中是否有無參構造函數。