当前位置: 首页 > 知识库问答 >
问题:

在spring boot get方法中为响应json添加字段

季凡
2023-03-14

我有一个将数据从存储库提供给rest控制器的服务:

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

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

和rest控制器:@RestController@RequestMapping(“/tasks”)public class TaskController{@Autowired private TaskService TaskService;

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

我的任务是不仅返回所有任务,而且返回两个字段Two-Todo tasks count和ready tasks count。我知道如何从数据库中找到这个计数。但是,将这些字段添加到response 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
}

共有1个答案

澹台俊达
2023-03-14

可以通过创建要由控制器返回的新模型并设置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

}
 类似资料:
  • 问题内容: 我正在使用RestEasy并hibernate以返回Jackson的响应。我有一个bean播放器,具有以下字段:名称,id,年龄,位置。 现在,我正在实现两种重现json的rest方法。 ,这将返回一名玩家:姓名,身份证,年龄,位置。 ,这将返回玩家列表,但是有了这个玩家列表,我不想返回位置。 我的意思是,我该如何为一个响应添加一个字段,而对另一个响应忽略它。 请提出建议。 谢谢 问题

  • 有一种Spring方法可以用JSON视图从服务响应中过滤出字段,但我缺少一种等效的方法,可以用一些类似这样的动态/语法字段来丰富响应; 我可以在视图中包装用户,但我不想手动传播所有需要的用户字段。 我的另一个想法是用用户对象扩展视图,并创建某种引用链接器,将值引用从用户对象复制到视图中,但这将使集合变得复杂。 是否有其他方法或框架来实现这一目标?这一概念是否根本没有得到解决? 更新: 举例说明:

  • 我需要在MCV4中的web-api返回一个http状态给用户(在调用post/get方法之后)。 (MCV4的新项目),并选择:WEB-API。 我有VS2010,我查看了从Web Api控制器返回http状态代码的示例,但它对我不起作用。 null 对于以下代码: 我将上面的内容放在类型的类中:apicontroller-responsetype是未知的,实际上,在代码中,我添加了: 但是,re

  • 我有一个Sencha Touch应用程序。我的一个商店使用ajax代理和json阅读器。从我的sinatra应用程序返回的JSON中的一些字符串偶尔包含以下字符:http://www.fileformat.info/info/unicode/char/2028/index.htm 虽然它是不可见的,但该字符在这里的第二个字符串中出现了两次,在句点和结尾引号之间: 尝试复制和粘贴“每个级别都需要逻辑

  • 我调用一个Web服务来获取JSON字符串响应,它包含的反斜杠不是原始字符串。下面是我请求JSON字符串对象的代码,它是:{“name”:“name”,“id”:1} 在后执行中,我只是尝试将这个resush字符串解析为JSONObject。 Rsponse字符串是:“{\'name\':\'name\',\'id\':1}”,当我试图将其解析为JSONObject时,它会抛出一个异常:org。js

  • 本文向大家介绍Django中模型Model添加JSON类型字段的方法,包括了Django中模型Model添加JSON类型字段的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Django中模型Model添加JSON类型字段的方法。分享给大家供大家参考。具体如下: Django里面让Model用于JSON字段,添加一个JSONField自动类型如下: 之后就直接为Model定义JSONF