only-json-validator是Java校验json数据类型的一个小框架,基于fastjson做json解析。
因为在做项目时,现在Java后台接口多半在body中使用json做为数据传输,但是没找到比较想要的一款验证json数据的框架。于是自己动手写了这么一个验证json数据的小框架,希望弄帮到大家。
使用方式:
{
"name":"张三",
"age":101,
"email":"",
"sex":"男",
"head":"http://ssss",
"index":"b",
"roleIds":[
1,
2,
6
],
"roles":[
{
"name":"经理",
"grade":"12"
},
{
"name":"总监",
"grade":"13"
}
]
}
[//数组为最顶层,这样可以配置多个验证规则
{
"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":{
}
}
]
//需要验证的json,这里简单写了,如上面示例
String json = "{\"name\":\"\"}";
//读取配置文件,初始化验证类
ValidatorService vs = new ValidatorService("classpath*:/validator/*.json");
//按命名去验证json内容是否合法,返回空列表则合法,非空则有不合法数据
List<ValidatorResult> 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"
}
]
<dependency>
<groupId>com.onlyxiahui.framework</groupId>
<artifactId>only-json-validator</artifactId>
<version>1.0.0</version>
</dependency>
网上好像没有class-validator验证修饰器的中文翻译,也好像没有官网,只有npm插件介绍里有,但是是英文的。这里我就做回搬运工,并翻译下,好用请点赞 至于使用方法nestjs官网直接cv,不多介绍。 验证修饰器 通用验证装饰器 修饰器 描述(英文) 描述(中文) @IsDefined(value: any) Checks if value is defined (!== undefine
在Express中验证传入的数据。 假设您有一个POST接口,它接受名称、电子邮件和年龄参数: const express = require('express') const app = express() app.use(express.json()) app.post('/form', (req, res) => { const name = req.body.name con
Say you have a POST endpoint that accepts the name, email and age parameters: 假设您有一个POST端点,可以接受名称,电子邮件和年龄参数: const express = require('express') const app = express() app.use(express.json()) app.post
在我们用Controller接收参数后,往往需要对参数进行校验。如果我们手写校验的话,就会有一堆的判空代码,看起来很不优雅,写起来也费时费力。下面来看下如何通过hibernate-validator来进行优雅的参数校验。 首先需要引入依赖: <dependency> <groupId>org.hibernate.validator</groupId> <artifactId>hibernate
You’ve seen how to validate input that comes from the outside world to your Express app. 您已经了解了如何验证来自外部世界的输入到您的Express应用程序。 There’s one thing you quickly learn when you run a public-facing server: nev
Posted by Guillaume Smet | Nov 20, 2019 Hibernate Validator Releases This blog post is long overdue but here comes the proper announcement of Hibernate Validator 6.1.0.Final and 6.0.18.Final. Hibernat
API的响应需要约束 目前我们开发Web API的方式是通过定义Open API描述文件来定义请求约束。约束能够保证所有请求参数按照正确的格式和必要性传输,从而规范化输入。这保护了服务端内部的安全——输入约束不变的情况下,输入的值总是合法可期的。 尽管Open API也提供了对Response Body的定义,允许用户描述响应的消息格式,但由于其不具有强制性——语法上可以不写,写了也不与实际返回内
上篇博文的表述是有问题,整个binding并不是 gin工程的其依然是使用了go-playground/validator 的校验系统。 package binding import ( "reflect" "sync" "github.com/go-playground/validator/v10" ) type defaultValidator struct { once
本例使用版本 <!-- 新 Bootstrap 核心 CSS 文件 --> <link href="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"> <link href="http://cdn.bootcss.com/bootstrap-validator/
前言 以前api接口大家用得比较多的是表单方式传值,现在越来越流行使用json参数类型。 正文 下面从php、golang两个语言在json的使用上做一些说明。 php的处理json的两个方法名叫: json_encode 数组转换为json字符串 json_decode json字符串转换为数组或对象 golang官方包,Package json支持若干json的方法; json.Marsh
主要内容:1、字符串,2、数字,3、布尔值,4、空,5、对象,6、数组JSON 是 Web 开发中使用最广泛的数据交换格式,它独立于编程语言,能够被大多数编程语言使用。本节我们来详细介绍一下 JSON 中支持的数据类型。 JSON 中支持的数据类型可以分为简单数据类型和复杂数据类型两种,其中简单数据类型包括:string(字符串)、number(数字)、boolean(布尔值)和 null(空);复杂数据类型包括:Array(数组)和 Object(对象)。 1、字
问题内容: Python 3.7是在不久前发布的,我想测试一些新奇的+键入功能。使用本机类型和模块中的本机类型,使提示正确工作非常容易。 但是我想尝试的另一件事是在运行时强制将类型提示作为条件,即类型不正确的a不可能存在。它可以很好地实现: 这种功能适用于本机类型和自定义类,但不适用于模块指定的功能: 有没有更好的方法来验证带有-typed列表的无类型列表?优选地,一个不包括检查类型的所有元素的任
本文向大家介绍PHP 验证数组类型,包括了PHP 验证数组类型的使用技巧和注意事项,需要的朋友参考一下 示例 is_array()如果变量是数组,则函数返回true。 您可以在函数中键入提示数组类型以强制执行参数类型。传递其他任何内容都会导致致命错误。 您也可以使用该gettype()功能。
我正在spring boot rest中对请求对象进行验证。我必须验证请求的数据类型。该请求有多个布尔值,并试图验证是否为布尔数据类型传入了字符串。我在ControllerAdvice类中处理了HttpMessageOnTreadableException,并发送了错误消息列表。但在我的回答中,只有第一个字段抛出异常。如果有线索,请帮忙。
验证模型数据 需要在 Model 添加 Schema (模式 与 mongoose Schema 相同概念),确保数据库能够正确存储. 一个 Model 数据可以在它进入数据存储之前进行验证, 确保后端架构程序. 添加 schema 到 Model 使用验证方法 本地化验证消息(中文) 添加模式(schema) 到模型 验证数据的一种方法是创建一个模型模式(Model Schema), Loopb
我想在用户使用Scanner输入时验证数据类型(在我的情况下是“int”)。 我在下面写了代码。 问题是,在第一个块中,若我给字符,程序终止。“如何在验证失败时保持循环运行??” 在第二个块中,如果我给出非整数,它将无限运行,并显示消息“仅输入整数值”。 从调试中,我得出结论,在不等待输入的情况下,它采用之前提供的最后一个非int值。 为什么编译器取最后一个值?? 有什么建议吗?
5. 验证、数据绑定和类型转换 {#toc_0}
我是新手,尝试使用json模式验证器版本4.3.0进行一些验证。运行时会出错。在这方面需要帮助。 这是我的模式(sample.json): 我的json响应是这样的: 编写的测试用例是: 我/我得到的错误是: 此外,我想知道是否有可能验证不同的数据类型,如字符,日期,数字?如果是的话,那也帮我一下。 提前感谢...