在Spring Boot中定制JSON响应可以通过以下步骤实现:
public class CustomResponse {
private int statusCode;
private String message;
private Object data;
// 省略构造函数、getter和setter方法
}
RuntimeException
或其子类。public class CustomException extends RuntimeException {
private int statusCode;
private String message;
// 省略构造函数、getter和setter方法
}
ResponseEntityExceptionHandler
接口,可以自定义全局异常处理器。在该类中,可以重写handleExceptionInternal
方法,对不同类型的异常进行特定的处理,然后返回自定义的JSON响应。@ControllerAdvice
public class CustomExceptionHandler extends ResponseEntityExceptionHandler {
@Override
protected ResponseEntity<Object> handleExceptionInternal(Exception ex, Object body, HttpHeaders headers, HttpStatus status, WebRequest request) {
CustomResponse customResponse = new CustomResponse();
customResponse.setStatusCode(status.value());
customResponse.setMessage(ex.getMessage());
// 设置其他响应字段
return new ResponseEntity<>(customResponse, headers, status);
}
}
@RestController
public class MyController {
@GetMapping("/data")
public CustomResponse getData() {
CustomResponse customResponse = new CustomResponse();
customResponse.setStatusCode(200);
customResponse.setMessage("Success");
customResponse.setData(someData);
return customResponse;
}
// 省略其他控制器方法
}
通过以上步骤,你可以在Spring Boot中定制JSON响应。在自定义响应类中,你可以根据需求添加更多字段。此外,你还可以根据具体的业务需求,在自定义异常处理器中添加其他异常处理逻辑。
如果你使用腾讯云,可以参考腾讯云的Serverless产品,例如腾讯云云函数 SCF,用于无服务器应用的开发和部署。详情请参考:腾讯云云函数 SCF。
领取专属 10元无门槛券
手把手带您无忧上云