我有一个RestController,当我调用该方法时:
@RequestMapping(value = "/sigla/{sigla}")
@ResponseBody
public PaisDTO obterPorSigla(@PathVariable String sigla) {
return service.obterPorSigla(sigla);
}
Run Code Online (Sandbox Code Playgroud)
如果找到记录,我会得到一个好的JSON响应:
{"nome":"Brasil","sigla":"BR","quantidadeEstados":27}
Run Code Online (Sandbox Code Playgroud)
但是当在数据库中找不到任何内容时,RestController返回null并且我得到一个空响应,完全空白的主体.
如何显示空JSON而不是空白响应?如下:
{}
Run Code Online (Sandbox Code Playgroud)
完整控制器:
@RestController
@RequestMapping("/pais")
public class PaisController {
@Autowired
private PaisService service;
@RequestMapping
public ResponseEntity<List<PaisDTO>> obterTodos() {
return CreateResponseEntity.getResponseEntity(service.obterTodos());
}
@RequestMapping(value = "/sigla/{sigla}", method = RequestMethod.GET, consumes="application/json", produces="application/json")
public ResponseEntity<PaisDTO> obterPorSigla(@PathVariable String sigla) {
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "application/json");
PaisDTO paisDTO = service.obterPorSigla(sigla);
if(paisDTO != null) return new ResponseEntity<PaisDTO>(paisDTO, headers, HttpStatus.OK);
else return new ResponseEntity<PaisDTO>(headers, HttpStatus.OK);
}
Run Code Online (Sandbox Code Playgroud) 我正在使用以下服务创建RESTFul Web服务:
@RequestMapping(value = "/test", produces = "application/json", method = RequestMethod.GET)
public ResponseEntity<List<GenericModel>> returnEmpty() {
List<GenericModel> genericModelList = new ArrayList<>();
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "application/json; charset=utf-8");
return responseEntity = new ResponseEntity<>(genericModelList, headers, HttpStatus.OK);
}
Run Code Online (Sandbox Code Playgroud)
当空列表返回时,我在浏览器中得到以下响应:
[]
Run Code Online (Sandbox Code Playgroud)
如何在浏览器中收到“空”响应而不是[]?有某种方法可以告诉Spring将列表大小0呈现为“空”而不是[]?