小编Hél*_*lho的帖子

Spring Boot:当返回的对象为null时,返回空JSON而不是空体

我有一个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)

rest spring json

7
推荐指数
3
解决办法
1万
查看次数

在ResponseEntity正文中返回null(Spring Boot RESTful)

我正在使用以下服务创建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呈现为“空”而不是[]?

java rest spring web-services spring-boot

5
推荐指数
1
解决办法
9449
查看次数

标签 统计

rest ×2

spring ×2

java ×1

json ×1

spring-boot ×1

web-services ×1