我有一个控制器,它返回对象的ArrayList:
@GetMapping("/{access_token}/connected_instagram_accounts")
public ResponseEntity<List<InstagramAccountDTO>> getConnectedInstagramAccounts(@PathVariable("access_token") String accessToken) {
log.debug("InstaramController.getConnectedInstagramAccounts() was called. access_token = {}", accessToken);
List<InstagramAccountDTO> result = instagramService.getAllConnectedInstagramAccounts(accessToken);
return new ResponseEntity<>(result, HttpStatus.OK);
}
在邮递员中,我看到此端点返回以下结果:
{
"ArrayList": []
}
但是我希望ArrayList不应该有任何包装对象,而且我希望得到以下结果:
[]
我尝试在调试器中检查序列化,并发现jackson以正确的方式对其进行了序列化。
我需要在哪里寻找问题?哪个类负责序列化 ResponseEntity ?
答案 0 :(得分:1)
通常,这是我的愚蠢错误。我以前为杰克逊添加了以下设置,却忘了:
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(SerializationFeature.WRAP_ROOT_VALUE, true);
所以,这就是杰克逊为我的列表添加包装器对象的原因。