java newb here。可能以前已经介绍过了,但我似乎无法找到它。 在Java 8 + Spring 4 + Jackson上重新启动服务2.我想要做的是将JSON解组为一个对象。只需最少的设置就可以正常工作:
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来处理HttpMessageNotReadableException,所以它会返回某种描述性的JSON,指出错误。
问题是,如果我在JSON中遇到多个错误,例如: {" id":cat," val":" dog"} unmarshaller将在第一个节点上抛出异常并停止解析,要求客户端逐个修复问题并重新发布它们,以获得下一个错误响应。在这种特殊情况下可能不是问题,但在处理更大的数据集时它变得非常不可思议。所以我想以某种方式说服杰克逊领主在抛出异常之前解析整件事。 建议?