在Spring Boot中,如果findById方法返回null或找不到相应的数据,可以通过以下方式返回Json:
@GetMapping("/api/{id}")
public ResponseEntity<?> getById(@PathVariable("id") Long id) {
// 调用findById方法获取数据
Optional<Data> data = dataRepository.findById(id);
if (data.isPresent()) {
return ResponseEntity.ok(data.get());
} else {
return ResponseEntity.notFound().build();
}
}
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(NotFoundException.class)
public ResponseEntity<?> handleNotFoundException(NotFoundException ex) {
// 返回自定义的错误消息或者一个空的Json对象
return ResponseEntity.notFound().build();
}
}
public class ApiResponse<T> {
private boolean success;
private T data;
private String message;
// 省略构造方法、getter和setter
}
@GetMapping("/api/{id}")
public ApiResponse<Data> getById(@PathVariable("id") Long id) {
// 调用findById方法获取数据
Optional<Data> data = dataRepository.findById(id);
if (data.isPresent()) {
return new ApiResponse<>(true, data.get(), null);
} else {
return new ApiResponse<>(true, null, "Data not found");
}
}
以上是几种常见的处理方式,根据具体需求选择适合的方式来返回Json数据。在实际应用中,可以根据业务需求进行定制化的处理。
领取专属 10元无门槛券
手把手带您无忧上云