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

时间:2017-12-26 12:02:02

标签: java json annotations jackson oval

我正在使用Web服务发送一个json对象。接收调用的方法具有模型Object的方法参数,用于传递相应的jsonObject输入。 JSONObject已成功转换为模型对象,但我无法从模型对象中测试我的一些响应。

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

我无法检测null是否因为字段缺失或字段被设置为null。

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

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

这是春季启动项目。

代码段:

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
}

如果我尝试

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

或:

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

并使用addOrganization方法中的调试器进行检查,然后在两种情况下该值都为null。

模特课:

public class Organization{

@JsonInclude(JsonInclude.Include.NON_EMPTY)
private String orgType;

private String orgLocation;

// other fields and getters and setters.

}

1 个答案:

答案 0 :(得分:1)

我正在浏览StackOverflow的链接,最后通过此链接得到答案

Jackson: What happens if a property is missing?

思想可能对其他人有所帮助。

由于