在前后端分離的應(yīng)用中,json是很常見的數(shù)據(jù)格式。在MVC架構(gòu)中,Controller可以將接收到的json數(shù)據(jù)轉(zhuǎn)化為相應(yīng)的對(duì)象。
public class UserController { @PostMapping("/user") public ResponseEntity<User> createUser(@RequestBody String userJson) { ObjectMapper objectMapper = new ObjectMapper(); User user; try { user = objectMapper.readValue(userJson, User.class); userService.createUser(user); return new ResponseEntity<>(HttpStatus.CREATED); } catch (JsonProcessingException e) { e.printStackTrace(); return new ResponseEntity<>(HttpStatus.BAD_REQUEST); } } }
在上述Controller中,使用@RequestBody注解將接收到的json數(shù)據(jù)綁定到方法的參數(shù)中。其中,ObjectMapper是Jackson庫中的一個(gè)類,可以將字符串形式的json數(shù)據(jù)轉(zhuǎn)化為Java中的對(duì)象。
在使用ObjectMapper解析json時(shí),需要定義實(shí)體類。比如,上述代碼中的User類:
public class User { private String username; private String password; //Getter and Setter public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
其中,User類的屬性名需要與接收到的json數(shù)據(jù)中的鍵名一致。
通過上述方法,我們就可以將前端傳來的json數(shù)據(jù)轉(zhuǎn)化為Java中的對(duì)象,方便后續(xù)的業(yè)務(wù)處理。