【问题标题】:How to insert the null value into a field of the @RequestBody [duplicate]如何将空值插入@RequestBody的字段[重复]
【发布时间】:2021-03-25 12:08:33
【问题描述】:

在我在 spring-boot 中创建的这个小项目中,通过一个简单的获取,将字段“firstname”和“username”传递给它,我在 json 中返回一条消息,其中包含该特定用户的所有信息。这是我的请求类

public class UsersRequest implements Serializable {
    private String firstName;
    private String lastName;
}

我的控制器里有这个

   public UsersResponse getMyUsers(@RequestBody UsersRequest request) throws IOException {
    //some code
    }

我希望能够将 null 作为“firstName”字段中的值传递,只是当我将 null 放入 firstName 时,我的 get 会完全删除 firstName 字段并且仅使用“lastName”来执行此操作

我的要求:

{
   firstName : "" , //i have a deserializer which converts empty strings to null
   lastName : "Treehard"
}

然后我看到的请求是这样的

Request{"lastName":"Trehard"}

有没有办法将 null 作为值传递,并且可以在不删除任何一个字段的情况下获取这两个字段?

【问题讨论】:

  • 您的标题与您的问题正文不匹配。你的意思是使用@RequestParam
  • 不,我的意思是@requestBody。我不知道这个问题,我会关注那个
  • 请编辑以更正该标题。另外,my get完全删除是什么意思?
  • 对不起,我写得很快。从某种意义上说,当我去记录我发送的请求时,我发现它不成功,因为它好像删除了 get 的一个参数,因此它不起作用

标签: java spring-mvc


【解决方案1】:

如果您传递密钥或不传递密钥,它将通过添加必需的属性来工作, 尝试这样做 @RequestParam(required = false ,value = "key")字符串键

【讨论】:

  • 他们正在发送 JSON 正文。你是在告诉他们放弃这个想法,而是发送查询参数/表单数据吗?
  • 我拼错了,我的意思是 RequestBody,我继承了这个问题
猜你喜欢
  • 2012-05-01
  • 2017-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-06
  • 2012-02-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多