# only-json-validator **Repository Path**: moxiaoyu1125/only-json-validator ## Basic Information - **Project Name**: only-json-validator - **Description**: 这是一个Java用于校验jaon字符串的小框架,可以用来校验json字符串中数据是否合法等。因为希望在http请求body中json统一拦截校验,但是没找到合适的框架,所有自己写了个小框架,依赖fastjson,希望也能帮助到大家。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 11 - **Created**: 2019-07-04 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #only-json-validator --- 这是一个用来校验json字符串的小框架 ###使用方式(主要有3部分) 1、配置文件,用于配置验证规则 2、Java验证代码读取配置文件 3、需要校验的json字符串 ```javascript /** * --配置方式,内容配置在json文件中
* */ [ { "name":"001",//这个相当于命名空间或者id等 "validator":{ "array":{//这个是需要验证的字段 "validators":[//这是验证规则 { "validator":"array"//只是表示这个字段为数组 } ] }, "boolean":{ "validators":[ { "validator":"boolean" } ] }, "email":{ "validators":[ { "validator":"email" } ] }, "equalsTo":{ "validators":[ { "validator":"equalsTo", "value":"node.equalsTo" } ] }, "inStringArray":{ "validators":[ { "validator": "inStringArray", "value": ["1","2","3","a","b","c"] } ] }, "integer":{ "validators":[ { "validator":"integer" } ] }, "maxLength":{ "validators":[ { "validator":"maxLength", "value": 10 } ] }, "max":{ "validators":[ { "validator": "max", "value": "50.5" } ] }, "minLength":{ "validators":[ { "validator": "minLength", "value": 5 } ] }, "min":{ "validators":[ { "validator": "min", "value": "20.0" } ] }, "notBlank":{ "validators":[ { "validator":"notBlank" } ] }, "notNull":{ "validators":[ { "validator":"notNull" } ] }, "number":{ "validators":[ { "validator":"number" } ] }, "regex":{ "validators":[ { "validator":"regex", "value": "((\\d{2}(([02468][048])|([13579][26]))[\\-]((((0?[13578])|(1[02]))[\\-]((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-]((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-]((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-]((((0?[13578])|(1[02]))[\\-]((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-]((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-]((0?[1-9])|(1[0-9])|(2[0-8]))))))", "message":"日期格式不对" } ] }, "url":{ "validators":[ { "validator":"url" } ] }, "code":{ "validators":[ { "validator":"notBlank", "code":"code.001", "message":"不能为空!" } ] }, "roleIds":{ "validators":[ { "validator":"array" } ], "nodes":{ "validators":[ { "validator":"notNull" }, { "validator":"integer" } ] } }, "node":{ "validators":[ { "validator":"notNull" } ], "nodes":{//这个表示node字段是个对象属性,其还有许多属性,然后下面的配置可以无限循环嵌套 "array":{ "validators":[ { "validator":"array" } ] }, "boolean":{ "validators":[ { "validator":"boolean" } ] }, "email":{ "validators":[ { "validator":"email" } ] }, "equalsTo":{ "validators":[ { "validator":"equalsTo", "value":"equalsTo" } ] }, "inStringArray":{ "validators":[ { "validator": "inStringArray", "value": ["1","2","3","a","b","c"] } ] }, "integer":{ "validators":[ { "validator":"integer" } ] }, "maxLength":{ "validators":[ { "validator":"maxLength", "value": 10 } ] }, "max":{ "validators":[ { "validator": "max", "value": "50.5" } ] }, "minLength":{ "validators":[ { "validator": "minLength", "value": 5 } ] }, "min":{ "validators":[ { "validator": "min", "value": "20.0" } ] }, "notBlank":{ "validators":[ { "validator":"notBlank" } ] }, "notNull":{ "validators":[ { "validator":"notNull" } ] }, "number":{ "validators":[ { "validator":"number" } ] }, "regex":{ "validators":[ { "validator":"regex", "value": "((\\d{2}(([02468][048])|([13579][26]))[\\-]((((0?[13578])|(1[02]))[\\-]((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-]((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-]((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-]((((0?[13578])|(1[02]))[\\-]((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-]((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-]((0?[1-9])|(1[0-9])|(2[0-8]))))))", "message":"日期格式不对" } ] }, "url":{ "validators":[ { "validator":"url" } ] }, "code":{ "validators":[ { "validator":"notBlank", "code":"code.001", "message":"不能为空!" } ] }, "roleIds":{ "validators":[ { "validator":"array" } ], "nodes":{ "validators":[ { "validator":"notNull" }, { "validator":"integer" } ] } } } } } }, { "name":"002", "validator":{ "name":{ "validators":[ { "validator":"notBlank" } ] }, "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":{ "validators":[ { "validator":"notNull" }, { "validator":"integer" } ] } } } }, { "name":"003", "validator":{ "user":{ "validators":[ { "validator":"notNull" } ], "nodes":{ "department":{ "nodes":{ "id":{ "validators":[ { "validator":"notNull" } ] } } } } }, "role":{ "validators":[ { "validator":"notNull", "message":"不能为空!" } ] }, "content":{ "validators":[ { "validator":"notNull" } ], "nodes":{ "sections":{ "validators":[ { "validator":"notNull" }, { "validator":"array" } ], "nodes":{ "items":{ "validators":[ { "validator":"notNull" }, { "validator":"array" } ], "nodes":{ "type":{ "validators":[ { "validator":"notNull" } ] }, "value":{ "validators":[ { "validator":"notBlank" } ] } } } } } } } } } ] /** * --需要校验的json示例
* */ { "array": "array", "boolean": 1, "email": "email", "equalsTo": "node.equalsTo", "inStringArray": "inStringArray", "integer": "integer", "maxLength": "1234567891011", "max": "100", "minLength": "1", "min": "2", "notBlank": "", "notNull": null, "number": "number", "regex": "regex", "url": "url", "code": "", "node": { "array": "array", "boolean": 1, "email": "email", "equalsTo": "equalsTo", "inStringArray": "inStringArray", "integer": "integer", "maxLength": "1234567891011", "max": "100", "minLength": "1", "min": "2", "notBlank": "", "notNull": null, "number": "number", "regex": "regex", "url": "url", "code": "", "roleIds": [ "", "g", "b" ] }, "roleIds": { } } ``` Java使用方式 ```java String json = "{"name":""}"; ValidatorService vs = new ValidatorService("classpath*:/validator/*.json"); List list = vs.validate(json, "001"); ```