【问题标题】:Jackson adds wrapper for ListJackson 为 List 添加了包装器
【发布时间】:2018-11-27 11:44:16
【问题描述】:

我有一个控制器,它返回一个对象的 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);
}

在 Postman 中,我看到此端点返回以下结果:

{
    "ArrayList": []
}

但我希望 ArrayList 不应该有任何包装对象,我期待以下结果:

[]

我尝试在调试器中检查序列化,并看到 jackson 以正确的方式对其进行序列化。

我需要在哪里寻找问题?什么类负责序列化 ResponseEntity

【问题讨论】:

    标签: java json spring jackson


    【解决方案1】:

    像往常一样,这是我的愚蠢错误。我之前为杰克逊添加了以下设置并忘记了它:

    ObjectMapper objectMapper = new ObjectMapper();
    objectMapper.configure(SerializationFeature.WRAP_ROOT_VALUE, true);
    

    所以,这就是杰克逊为我的列表添加包装对象的原因。

    【讨论】:

      猜你喜欢
      • 2011-05-22
      • 2014-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-16
      相关资源
      最近更新 更多