【问题标题】:Adding fields to response json in spring boot get method在spring boot get方法中向响应json添加字段
【发布时间】:2021-02-07 06:00:33
【问题描述】:

我有将数据从存储库提供给休息控制器的服务:

@Service
public class TaskServiceImpl implements TaskService {
    @Autowired
    private TaskRepository taskRepository;

    @Override
    public List<Task> getAllTasks() {
        return taskRepository.findAll();
    }
}

还有休息控制器: @RestController @RequestMapping("/tasks") 公共类任务控制器 { @自动连线 私有TaskService taskService;

    @GetMapping
    public List<Task> getAllTasks() {
        return taskService.getAllTasks();
    }
}

我的任务是不仅返回所有任务,还返回两个字段 - 待办任务计数和就绪任务计数。我知道如何从 db 中找到这个计数。但是将此字段添加到响应 json 的正确方法是什么?响应 json 必须如下所示:

{
  [
    {
      "createTime": null,
      "updateTime": null,
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "title": "todo-task",
      "description": "blabla",
      "priority": "HIGH",
      "done": false,
    },
    {
      "createTime": null,
      "updateTime": null,
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "title": "done-task",
      "description": "blabla",
      "priority": "HIGH",
      "done": true,
    }
  ],
  todoCount: 1,
  doneCount: 1
}

【问题讨论】:

    标签: java json spring rest


    【解决方案1】:

    您可以通过创建控制器返回的新模型并设置您的 todoCount 和 doneCount 值来做到这一点:

     @GetMapping
        public TasksModel getAllTasks() {
    // get todoCount and doneCount values
              TasksModel tasksModel = new TasksModel();
              tasksModel.setTaskModelList(taskService.getAllTasks())
              tasksModel.setTodoCount(todoCount);
              tasksModel.setDoneCount(doneCount); 
    
            return taskModel;
        }
    

    TasksModel 是:

    class TasksModel  {
         
         List<Task> taskModelList;
         int todoCount;
         int doneCount;
    
    //getter
    //setter
    
    }
    

    【讨论】:

      猜你喜欢
      • 2020-04-14
      • 2021-01-07
      • 2020-03-09
      • 2015-09-18
      • 2017-04-17
      • 2018-07-13
      • 1970-01-01
      • 2021-11-16
      • 2016-03-19
      相关资源
      最近更新 更多