我在对象映射器上使用Jackson的readValue()方法从
JSON文件中读取并将其转换为我的java对象.
例如.
mapperObject.readValue( node,MyTargetClass.class )
是否有任何可以在MyTargetClass上设置的注释来强制执行必需的属性?例如,如果我有一个具有属性ABC,DEF和GHI的JSON对象,并且我的Json是以下
{ "ABC" : "somevalue" "DEF" : "someothervalue" }
我想要它以某种方式失败,如果它包含ABC,DEF和GHI,只能在readValue上成功.
解决方法
杰克逊不包括验证功能,而这是设计(即被认为是超范围的).但是通常使用的是
Bean Validation API的实现. 关于这一点的好处是数据格式处理和验证逻辑之间的解耦. 这就是DropWizard使用的框架这就是JAX-RS(如泽西)正在为JAX-RS 2.0采取的方向.