当前位置: 首页 > 软件库 > 程序开发 > 常用工具包 >

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<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"
	}
]
  • Maven坐标
<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响应是这样的: 编写的测试用例是: 我/我得到的错误是: 此外,我想知道是否有可能验证不同的数据类型,如字符,日期,数字?如果是的话,那也帮我一下。 提前感谢...