3

我正在使用 Spring MVC 3.2.3 + Jackson 2.1.4 进行 JSON 序列化。

我想知道是否可以要求 Spring 验证请求正文中的 JSON 对象*,尤其是在缺少必填字段的情况下

我尝试在 Java bean 的一个属性上设置@JsonProperty(require = true),但是当请求的 JSON 对象中缺少该字段时,似乎没有引发异常。

请求正文中的 JSON(缺少“field1”)

{
    "field2": "value2",
    "field3": "value3"
}

控制器代码:

@Controller
@RequestMapping("/myBaseUrl")
public class MyController{

    //...

    @RequestMapping(method = RequestMethod.POST, value = "/myUrl", consumes = MediaType.APPLICATION_JSON_VALUE)
    public void handle(@RequestBody MyRequestBean requestBean) throws IOException {

        // code reach at execution whereas I expected the throw of an exception because "field1" is missing in JSON.
    }
}

请求的 Bean:

public class MyRequestBean {
    //...

    @JsonProperty(required = true)
    private String field1

    //...

    public String getField1(){ return field1; }
    public void setField1(String field1){ this.field1 = field1; }
}
4

0 回答 0