Java 防止Jackson解组器在第一个数据类型不匹配时引发异常
这里是java新手。也许这已经在某个地方被报道过了,但我就是找不到它。 Java8+Spring4+Jackson2上的RESTish服务。我想做的是将JSON解组到一个对象中。它只需最少的设置即可正常工作:Java 防止Jackson解组器在第一个数据类型不匹配时引发异常,java,json,spring,jackson,Java,Json,Spring,Jackson,这里是java新手。也许这已经在某个地方被报道过了,但我就是找不到它。 Java8+Spring4+Jackson2上的RESTish服务。我想做的是将JSON解组到一个对象中。它只需最少的设置即可正常工作: public class A { private int id; private double val; getters/setters } 然后我有了我的restcontroller: @RestController @RequestMapping(value
public class A {
private int id;
private double val;
getters/setters
}
然后我有了我的restcontroller:
@RestController
@RequestMapping(value = "/item/", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public class MyController {
public A test(@Valid @RequestBody A a) {
return a;
}
}
如果我发布有效的JSON
{"id": 1, "val":5.55}
一切都很美好。如果我发帖
{"id": cat, "val":5.55}
默认情况下,我得到的响应是400。我可以定义@ExceptionHandler来处理HttpMessageTreadableException,这样它将返回某种描述性JSON,指出错误
问题是,如果JSON中出现多个错误,例如:
{“id”:猫,“val”:“狗”}
解组器将在第一个节点上抛出异常并停止解析,要求客户端逐个修复问题并重新发布它们,以获得下一个错误响应。在这种特殊情况下,这可能不是一个问题,但在处理更大的数据集时,它变得非常不可思议。所以我想以某种方式说服杰克逊勋爵在抛出异常之前解析整个事件。
建议?您可以使用
或者,您可以在REST服务中验证传入的JSON数据!!