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

Spring boot RequestBody具有可能需要的对象字段

楚勇
2023-03-14

如何让我的Request estBody接受可能包含也可能不包含对象字段的模型?

这是我正在调用的Restcontrollerendpoint

@PatchMapping(value = "/projects/update/{projectNumber}")
public ResponseEntity<Object> updateProject(@PathVariable int projectNumber, @RequestBody RequestReviewUpdate rru)
{
    return reviewUpdateService.updateReview(projectNumber, rru);    
}

这是@RequestBody正在接受的模型

public class RequestReviewUpdate
{
    private UpdateProject project;
    private List<UpdateHlsd> reviews;
    private List<UpdateProjectLeadership> stakeHolders;
    
    public UpdateProject getProject() 
    {
        return project;
    }
    
    public List<UpdateHlsd> getReviews() 
    {
        return reviews;
    }
    
    public List<UpdateProjectLeadership> getStakeHolders() 
    {
        return stakeHolders;
    }
    
}

我希望能够发送一个JSON,可以包含所有对象字段,或者一些。

我的JSON身体看起来像这样...

{
    "project": {
        "type": "HLSD"
    },
    "reviews": [
        {
            "id": 570,
            "requestedBy": "Name here",
            "notes":"test"
        }
        ],
    "stakeHolders": [
        {
            "id": 1088,
            "projectResource": "sid"
        }
    ]
}

或者这个等等

{
    "reviews": [
        {
            "id": 570,
            "requestedBy": "name",
            "notes":"test"
        }
 }

或任何其他可能的组合。

共有1个答案

习哲彦
2023-03-14

只需将您的Request estRevewUpdate设为可选,例如:

@PatchMapping(value = "/projects/update/{projectNumber}")
public ResponseEntity<Object> updateProject(@PathVariable int projectNumber, @RequestBody(required=false) RequestReviewUpdate rru) {
    return reviewUpdateService.updateReview(projectNumber, rru);    
}

这将使您的参数完全或部分可选。一、 e.作为参数接收的对象的任何成员都可能存在或不存在。

 类似资料:
  • 我有一个对象,我正试图映射到。现在这个有一个名为的枚举,其中包含一些值。我想使用将它们映射到中的其他枚举值。以下是我到目前为止的代码: 当我尝试编译它时,我得到了错误:

  • 我想出了这个类: 这里是用法: 问题: 为什么使用作为返回表达式编译得很好(Z不是instexpr)。 如何调用和方法的对象() ? 中的行为在编译器中是不同的。MSVC可以使用作为模板参数进行编译,而GCC(IdeOne)不会编译它。 对于一个编译器来说< code>constexpr GetX是真正的< code>constexpr,但是对于另一个编译器来说,如果涉及到< code>X Z就不

  • 我正在用查询构建一个存储库,该查询使用一个复杂的类型参数进行筛选,如下所示: 类是一个简单的POJO: null 谢了!

  • 前言 本菜鸡20年提前批收获了字节的意向书,正好今天字节研发提前批开启,把面经整理出来分享给大家,也借此把好运分享给大家。 简单介绍下面试前的个人情况: 面试前:剑指 offer 刷完,Leetcode 大概 70 道。操作系统复习完毕,数据库不会,计网不会。 后来:一面前一周学了数据库,三面前三天学了计网。两周时间陆续刷了 80 道 Leetcode。 希望这篇文章能对大家有所帮助,祝各位 of

  • 需要工具 Mac: 终端1 FileZilla(用于传输文件) SecureCRT(用于 使用SSH 登录服务器) PC: WinSCP (用于传输文件) SecureCRT (用于 使用SSH 登录服务器) 登录服务器实例 使用ssh 命令登录,然后输入该实例的 root 用户的密码 ssh root@实例的公网IP 磁盘初始化 列出所有安装的磁盘及分区信息 fdisk -l 如上图所示,目前实