only-json-validator - Json 数据类型验证小框架


Apache
跨平台
Java

软件简介

only-json-validator是Java校验json数据类型的一个小框架,基于fastjson做json解析。

因为在做项目时,现在Java后台接口多半在body中使用json做为数据传输,但是没找到比较想要的一款验证json数据的框架。于是自己动手写了这么一个验证json数据的小框架,希望弄帮到大家。

使用方式:

  • 示例需验验证的json字符串

    {
    “name”:”张三”,
    “age”:101,
    “email”:”“,
    “sex”:”男”,
    “head”:”http://ssss",
    “index”:”b”,
    “roleIds”:[
    1,
    2,
    6
    ],
    “roles”:[
    {
    “name”:”经理”,
    “grade”:”12”
    },
    {
    “name”:”总监”,
    “grade”:”13”
    }
    ]
    }

  • 先写配置文件,配置文件中配置验证规则,配置在json文件中

    [//数组为最顶层,这样可以配置多个验证规则
    {
    “name”:”001”,//这个相当于命名空间或者id等,比如设置成url,通过url找到需验证请求是数据
    “validator”:{
    “name”:{//这个是需要验证的字段
    “validators”:[//这是验证规则
    {
    “validator”:”notBlank”,//验证类型,这个表示不能为空
    “code”:”1001”,//自定义错误码
    “message”:”姓名不能为空”//自定义错误提示
    },
    {
    “validator”:”minLength”,
    “value”:5
    },
    {
    “validator”:”maxLength”,
    “value”:128
    }
    ]
    },
    “age”:{
    “validators”:[
    {
    “validator”:”max”,
    “value”:”100”
    },
    {
    “validator”:”min”,
    “value”:”10”
    }
    ]
    },
    “email”:{
    “validators”:[
    {
    “validator”:”email”
    }
    ]
    },
    “sex”:{
    “validators”:[
    {
    “validator”:”notNull”
    },
    {
    “validator”:”inStringArray”,
    “value”:[
    “男”,
    “女”,
    “保密”
    ]
    }
    ]
    },
    “head”:{
    “validators”:[
    {
    “validator”:”url”
    }
    ]
    },
    “index”:{
    “validators”:[
    {
    “validator”:”number”
    }
    ]
    },
    “roleIds”:{
    “validators”:[
    {
    “validator”:”array”
    }
    ],
    “nodes”:{//这个表示node字段是个对象属性,其还有许多属性,然后下面的配置可以无限循环嵌套
    “validators”:[
    {
    “validator”:”notNull”
    },
    {
    “validator”:”integer”
    }
    ]
    }
    },
    “roles”:{
    “validators”:[
    {
    “validator”:”array”
    }
    ],
    “nodes”:{//这个表示node字段是个对象属性,其还有许多属性,然后下面的配置可以无限循环嵌套
    “name”:{
    “validators”:[
    {
    “validator”:”notBlank”
    },
    {
    “validator”:”maxLength”,
    “value”:128
    }
    ]
    }
    }
    }

        }
    },
    {
        "name":"002",
        "validator":{
    
        }
    }
    

    ]

  • Java代码读取配置文件然后验证json

    //需要验证的json,这里简单写了,如上面示例
    String json = “{"name":""}”;
    //读取配置文件,初始化验证类
    ValidatorService vs = new ValidatorService(“classpath:/validator/.json”);
    //按命名去验证json内容是否合法,返回空列表则合法,非空则有不合法数据
    List list = vs.validate(json, “001”);

  • 目前支持验证类型

    [
    {
    “validator”: “array”
    },
    {
    “validator”: “boolean”
    },
    {
    “validator”: “email”
    },
    {
    “validator”: “equalsTo”,
    “value”: “user.password”
    },
    {
    “validator”: “inStringArray”,
    “value”: [
    “1”,
    “2”,
    “3”
    ]
    },
    {
    “validator”: “integer”
    },
    {
    “validator”: “maxLength”,
    “value”: “50”
    },
    {
    “validator”: “max”,
    “value”: “50.5”
    },
    {
    “validator”: “minLength”,
    “value”: “20”
    },
    {
    “validator”: “min”,
    “value”: “20.0”
    },
    {
    “validator”: “notBlank”
    },
    {
    “validator”: “notNull”
    },
    {
    “validator”: “number”
    },
    {
    “validator”: “regex”,
    “value”: “”,
    “message”: “”
    },
    {
    “validator”: “url”
    }
    ]

  • Maven坐标


    com.onlyxiahui.framework
    only-json-validator
    1.0.0