【发布时间】:2021-08-22 07:19:22
【问题描述】:
服务接收这个 JSON:
{
"fieldA" : null
}
或者这个:
{
"fieldB" : null
}
java类模型是:
@Data
public class MyRequest implements Serializable {
private Integer fieldA;
private Integer fieldB;
}
服务是:
@PostMapping
@Produces({MediaType.APPLICATION_JSON})
@Consumes(value = {MediaType.APPLICATION_JSON})
public ResponseEntity<MyResponse> process(@RequestBody @Valid MyRequest request)
throws URISyntaxException {
Integer a = request.getFieldA();
Integer b = request.getFieldB();
...
}
这里的 a 和 b 整数对于两个请求都是空的。
有没有办法知道该字段是在json中设置为null还是因为未设置而为null?
我想在这 2 个请求之间做出区别
【问题讨论】:
-
您可以在您想要的任何首选级别添加空检查。在您的端点类或 getter/setter 内部。您也可以使用验证罐。我假设您使用的是 lombok,因此有一个用于 null 处理的注释,即 NonNull。检查它是否适合您的场景。
-
感谢您的建议,但 bith 字段为空,而一个在 json 中而不是另一个,我怎么知道一个在 json 中?
标签: java json spring serialization jackson