首页 > 解决方案 > 在获取 Spring Boot 请求中返回对象列表

问题描述

我创建了一个 Spring 服务来向前端返回通知列表。但是,为了更轻松地处理返回列表,我需要更改返回对象。但我不知道该怎么做。

目前返回列表如下所示:

[
    {
        "id": 24,
        "titulo": "Titulo da Notificacao",
        "mensagem": "Mensagem da Notificacao",
        "dataCriacao": "2021-07-23 17:00:25.244-03",
        "dataModificacao": null,
        "status": true
    },
    {
        "id": 25,
        "titulo": "Titulo da Notificacao 2",
        "mensagem": "Mensagem da Notificacao 2",
        "dataCriacao": "2021-07-23 17:00:25.244-03",
        "dataModificacao": null,
        "status": true
    }
]

我需要这样的反馈:

{
  "notificacoes":
    [
      {
          "id": 24,
          "titulo": "Titulo da Notificacao",
          "mensagem": "Mensagem da Notificacao",
          "dataCriacao": "2021-07-23 17:00:25.244-03",
          "dataModificacao": null,
          "status": true
      },
      {
          "id": 25,
          "titulo": "Titulo da Notificacao 2",
          "mensagem": "Mensagem da Notificacao 2",
          "dataCriacao": "2021-07-23 17:00:25.244-03",
          "dataModificacao": null,
          "status": true
      }
    ]
}

    @RequestMapping(value = "/status/{status}", method = RequestMethod.GET, produces = { "application/json" })
    public List<?> findAllByStatus(@PathVariable("status") Boolean status) {
        return service.findAllByStatus(status);
    }

谁能帮我?我想过创建一个包含通知列表的通知对象。但我认为有一种更简单的方法可以做到这一点......

标签: javaspringspring-bootapi

解决方案


使用地图怎么样?

这将允许您设置键“notificacoes”并重用您当前拥有的方法,提供通知列表。

@RequestMapping(value = "/status/{status}", method = RequestMethod.GET, produces = { "application/json" })
public Map<String, List<Notification>> findAllByStatus(@PathVariable("status") Boolean status) {
        Map<String, List<Notification>> response = new HashMap<>();
        response.put("notificacoes",  service.getNotifications());
        return response;
    }

推荐阅读