使用MappingJackson2HttpMessageConverter进行Spring json映射

时间:2014-05-22 14:48:57

标签: java json spring spring-mvc

我正在使用MappingJackson2HttpMessageConverter将json字符串从请求正文转换为我控制器中的POJO。

所以,例如: 请求:

{ "someToken" : "23434" }

POJO:

class SomeForm {
  @NotNull
  private Long someToken;

  // getters and setters
}

控制器:

public class SomeController {
  @RequestMapping
  public String makeRequest(@Valid SomeForm someForm, BindingResult bindingResult) {
     return someSuccessOrErrorCodesInJsonFormat;
  }
}

如果发送的数据正确,一切正常。 如果数据为null,那么一切都按预期工作,即bindingResult对象包含有关该错误的错误。

但如果数据不正确,即JSON中会有一些字母而不是数字, json转换器将抛出异常,因此服务器将响应500 http响应代码和一些带有异常堆栈跟踪的html。

据我所知,转换器和活页夹的工作方式如下: 1)转换器从json创建一个对象(这里发生异常) 2)Binder再次检查对象注释

是否可以改变json转换器的行为? 例如,如果它不能转换字段,它会将其保留为null,而不是抛出异常吗?

基本上,我需要一个像:

这样的请求
{ "someToken" : "asdfasdf" }

使用someToken = null和使用该对象调用的控制器方法构造一个SomeForm对象。

你可以给我一些建议吗? 任何帮助将非常感谢!

提前谢谢。

0 个答案:

没有答案