在 SpringMVC 中返回 JSON 數據,只需兩步:引入 Jackson 依賴 + 方法上加 @ResponseBody。框架自動將返回對象序列化為 JSON 寫入 HTTP 響應體,Content-Type 自動設置為 application/json;charset=UTF-8。
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(value = "/info", method = RequestMethod.GET)
@ResponseBody // 關鍵:直接將返回對象序列化為 JSON 寫入 Response Body
public User getUserInfo(@RequestParam("id") Long id) {
User user = userService.findById(id);
return user; // 自動轉 JSON:{"id":1,"name":"張三","age":25}
}
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ResponseBody
public List getUserList() {
return userService.findAll(); // 自動轉 JSON 數組:[{"id":1,...},{"id":2,...}]
}
}

saveUser(@RequestBody User user) { // @RequestBody 反序列化請求體 JSON
userService.save(user);
return Result.ok(); // 返回 {"code":200,"msg":"成功","data":null}
}
MappingJackson2HttpMessageConverter 設置 charset=UTF-8,或全局 spring.http.encoding.charset=UTF-8 (Spring Boot)。ObjectMapper 日期格式,或實體類字段加 @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")。@JsonIgnore / @JsonManagedReference + @JsonBackReference。Spring Boot 默認包含 Jackson,默認開啟 @ResponseBody 語義(@RestController = @Controller + @ResponseBody),無需任何配置即可返回 JSON。
總結
SpringMVC 返回 JSON 核心就是 Jackson 依賴 + @ResponseBody。理解背後的
HttpMessageConverter機制,能快速解決亂碼、日期格式、循環引用等實戰問題。Spring Boot 時代,更是開箱即用,專注業務邏輯即可。