小编Tar*_*run的帖子

将jsonObject转换为模型对象时如何检测丢失的字段

我正在发送一个JsonObject使用网络服务。接收调用的方法有一个模型对象的方法参数,用于JsonObject传递相应的 输入。在 JsonObject成功得到转换成模型对象,但我没能测试我的一些响应从模型对象。

例如:如果输入 JSON 中缺少任何必填字段,或者如果输入 JSON 中的任何字段设置为null,那么在这两种情况下,模型对象字段都将是null

我无法检测null是因为字段丢失还是字段设置为null.

有人可以建议我一个解决方案吗?

我最后的出路是,我将接收方法参数输入String而不是我的模型对象,然后使用条件检查,检查输入字符串并相应地获取我的响应。但是我的 JSON 输入对象非常大,我希望有比这更好的方法。

这是一个 Spring Boot 项目。

代码片段:

JSON Object being sent

{"orgType":null, "orgLocation": "Geneva" , //other fields}


@RequestMapping(value="/addOrganizations", method= RequestMethod.POST)
public ResponseEntity addOrganization(@RequestBody Organization organization){
// code goes here
}
Run Code Online (Sandbox Code Playgroud)

如果我尝试

{"orgType":null, "orgLocation": "Geneva" , //other fields}
Run Code Online (Sandbox Code Playgroud)

或者:

{"orgLocation": "Geneva" , //other fields}
Run Code Online (Sandbox Code Playgroud)

并在addOrganization()方法内部使用调试器进行检查,则值null在两种情况下都是如此。

模型类:

public class Organization{

@JsonInclude(JsonInclude.Include.NON_EMPTY)
private …
Run Code Online (Sandbox Code Playgroud)

java json annotations oval jackson

6
推荐指数
1
解决办法
4504
查看次数

标签 统计

annotations ×1

jackson ×1

java ×1

json ×1

oval ×1