项目有个业务需要对JSON格式的数据校验,需要一些必要字段的验证,实现一个JSON解析器。所以学习了json schema的语法和解析器的实现。
本篇是先说通用的JSON验证,也就是json schema和在java代码中的校验使用。
json schema是什么
json schema实际上就是一个JSON文件,文件内容是对JSON数据的结构及内容的约束,就像是xml文件的xsd文件对xml的验证。
先看一下简单的schema内容
json schema关键字
关键字
描述
$schema
表示该JSON Schema使用的版本规范,非必填,目前最新一版“Draft-07”是2019.09发布的。每个版本的语法可能有出入,方便以后人员维护建议使用
title
JSON Schema文件的标题,非必填
description
JSON Schema文件的描述信息,非必填
type
待校验元素的类型(例如,最外层的type表示待校验的是一个JSON对象,内层type分别表示待校验的元素类型为,number,string,array,object)
properties
JSON对象中,各个key-value对中value的限制条件
required
校验的JSON对象中,必须存在的key,不存在则校验失败
typele类型常见的取值
string,object,array,integer(只能是int),number(float或者int),null,boolean
<