色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

controller參數(shù)接收json

傅智翔2年前9瀏覽0評論

在進行開發(fā)中,常會需要接收前端傳來的 JSON 參數(shù)。而在 SpringMVC 的 controller 中,我們可以通過以下三種方式來接收 JSON 參數(shù):

1. 使用 @RequestBody 注解

@PostMapping("/addUser")
public User addUser(@RequestBody User user) {
return userService.addUser(user);
}

2. 使用 JSONObject

@PostMapping("/addUser")
public User addUser(HttpServletRequest request) {
String jsonStr = getJsonString(request);
JSONObject json = JSONObject.parseObject(jsonStr);
User user = json.toJavaObject(User.class);
return userService.addUser(user);
}
private String getJsonString(HttpServletRequest request) {
StringBuilder json = new StringBuilder();
String line = null;
BufferedReader reader = null;
try {
reader = request.getReader();
while ((line = reader.readLine()) != null) {
json.append(line);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (reader != null) {
reader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return json.toString();
}

3. 使用 @RequestParam 注解

@PostMapping("/addUser")
public User addUser(@RequestParam("user") String userJson) {
User user = JSONObject.parseObject(userJson, User.class);
return userService.addUser(user);
}

需要注意的是,接收參數(shù)的實體類必須與傳遞的 JSON 參數(shù)對應,否則會接收不到或者注入失敗。