我有一个休息服务,如果我有一个示例POST的方法,该方法消耗了application / json并且该方法的参数是另一个类,描述了require json的字段,那么有一种方法可以让jackson在之前验证输入的json输入方法?
这是一些代码:

@PUT
@Consumes("application/json")
public UserDataResourceObject login(UserResourceObject userResourceObject)
{
    Query query = getEm().createNamedQuery("User.authorize");
    if (userResourceObject == null)
    {
        throw new WebApplicationException(Response.Status.BAD_REQUEST);
    }
    query.setParameter("username", userResourceObject.getUsername());
    query.setParameter("password", Utility.getMD5Value(userResourceObject.getPassword()));
    Exception e = null;
    try
.................


而UserResourceObject描述了这种结构:

{
  "username" : "admin",
  "password" : "123456"
}


我想更改杰克逊上方json的结构,使我抛出示例400(错误请求)的异常。我怎样才能做到这一点?

最佳答案

您可以使用Bean验证(JSR 303)来验证收到的数据。
您有http://bval.apache.org/http://hibernate.org/validator/实现。

然后,您可以按照以下方式进行操作:

@PUT
@Consumes("application/json")
public UserDataResourceObject login(@Valid UserResourceObject userResourceObject) {

09-11 00:46