如何在Json转Object时校验对象的属性是否符合规则

用户bPkPel
  • 159

如何在json转Object时校验对象的属性是否符合规则
比如对象中的id不能为空,name长度限制什么的。

想通过Spring Validator的注解实现,但好像不行。

clipboard.png

clipboard.png

回复
阅读 6.7k
4 个回答

感谢各位提供思路,已经找到解决方法了。
http://ifeve.com/use-bean-val...

/**
     * 验证某个bean的参数
     * 
     * @param object 被校验的参数
     * @throws ValidationException 如果参数校验不成功则抛出此异常
     */
    public static <T> void validate(T object) {
        //获得验证器
        Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
        //执行验证
        Set<ConstraintViolation<T>> constraintViolations = validator.validate(object);
        //如果有验证信息,则将第一个取出来包装成异常返回
        ConstraintViolation<T> constraintViolation = getFirst(constraintViolations, null);
        if (constraintViolation != null) {
            System.out.println(constraintViolation.getPropertyPath());
            System.out.println(constraintViolation.getConstraintDescriptor().getAnnotation().annotationType());
            System.out.println(constraintViolation.getMessage());
        }
    }

可以在controller接收参数是时用public Result m(@valid Demo demo,){}这样验证。另外这是一整套的,如果单纯拿出来做,需要手动创建一个validator

你尝试下在生成的类属性的get set方法中 添加逻辑代码,出错直接 throw 抛错 试一试
不过其实你完全可以生成完在判断,似乎没什么区别

搜一下,json-shemale

你知道吗?

宣传栏