Java 防止Jackson解组器在第一个数据类型不匹配时引发异常

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

这里是java新手。也许这已经在某个地方被报道过了,但我就是找不到它。 Java8+Spring4+Jackson2上的RESTish服务。我想做的是将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来处理HttpMessageTreadableException,这样它将返回某种描述性JSON,指出错误

问题是,如果JSON中出现多个错误,例如: {“id”:猫,“val”:“狗”} 解组器将在第一个节点上抛出异常并停止解析,要求客户端逐个修复问题并重新发布它们,以获得下一个错误响应。在这种特殊情况下,这可能不是一个问题,但在处理更大的数据集时,它变得非常不可思议。所以我想以某种方式说服杰克逊勋爵在抛出异常之前解析整个事件。 建议?

您可以使用

或者,您可以在REST服务中验证传入的JSON数据!!