json schema校验

工作中使用到了json schema格式校验的问题,在网上查了些资料,结合自己的理解记录一下。

json schema可以对json结果字符串做出一些约束,例如:

1. 值类型是:array, object, number, string等等

2.值类型必须是枚举中的一个

3. 字符串的长度限制

4. 对字符串判断是否符合正则表达式

5. array元素个数

6. object对象必要属性

测试schema文件

 1 {
 2     "$schema": "http://json-schema.org/draft-04/schema#",
 3     "title": "Product set",
 4     "type": "array",
 5     "items": {
 6         "title": "Product",
 7         "type": "object",
 8         "properties": {
 9             "name": {
10                 "type": "string"
11             },
12             "price": {
13                 "type": "number",
14                 "minimum": 0,
15                 "maximum":30,
16                 "exclusiveMinimum": true
17             },
18             "tags": {
19                 "type": "array",
20                 "items": {
21                     "type": "string",
22                     "minLength":10,
23                     "maxLength":1024,
24                     "pattern":"http://.*"
25                 },
26                 "minItems": 2,
27                 "uniqueItems": true
28             },
29             "city":{
30               "type":"string",
31               "enum" : ["bj", "sh", "hk"]
32             }
33         },
34         "required": ["name", "price"]
35     }
36 }

测试json

 1 [
 2   {
 3     "name":"san",
 4     "price":29,
 5     "tags":["http://sdtr/sdg", "http://qwewret/qsdf"],
 6     "city":"bj"
 7   },
 8   {
 9     "name":"dong",
10     "price":30,
11     "tags":["http://test", "http://sina"],
12     "city":"hk"
13   },
14 ]

参考:

http://blog.csdn.net/Miss_Ashelley/article/details/53285762

http://www.jsonschemavalidator.net/

http://json-schema.org/

时间: 2024-10-29 10:46:36

json schema校验的相关文章

JSON解析器之json schema校验及代码实现

项目有个业务需要对JSON格式的数据校验,需要一些必要字段的验证,实现一个JSON解析器.所以学习了json schema的语法和解析器的实现. 本篇是先说通用的JSON验证,也就是json schema和在java代码中的校验使用. json schema是什么 json schema实际上就是一个JSON文件,文件内容是对JSON数据的结构及内容的约束,就像是xml文件的xsd文件对xml的验证. 先看一下简单的schema内容 1 { 2 "$schema": "htt

web接口参数校验神器-json schema 快速入门

Json Schema 快速入门 JSON 模式是一种基于 JSON 格式定义 JSON 数据结构的规范.它被写在 IETF 草案下并于 2011 年到期.JSON 模式: 描述现有数据格式. 干净的人类和机器可读的文档. 完整的结构验证,有利于自动化测试. 完整的结构验证,可用于验证客户端提交的数据. Json schema 格式 Json schema 本身遵循Json规范,本身就是一个Json字符串,先来看一个例子 { "$schema": "http://json-s

json schema

一.简介 我们先看下面的json数据 { "id": 1, "name": "g2", "desc":"b2" } 假设, 我们要求id为long型, id.name非空.desc可空.如何衡量json数据是有效的呢?现在流行的json schema 是用来校验json数据是否合法. 详情请移至 https://github.com/daveclayton/json-schema-validator 二.参

如何用Google APIs和Google的应用系统进行集成(5)----如何把Google Tasks的JSON Schema转换成XML的Schema(XSD)?

前面说了一些Google API的介绍,但是在实际的开发当中,我们可能需要把Google RESTful API返回的JSON数据转换成XML数据输入到第三方系统,这在企业应用集成里面非常的常见.那么里面就有一个问题,如何确保转换后的XML数据格式是规范的,这就需要XML Schema(XML)来进行校验.现在关键是,我们只知道Google API的JSON的schema,但是Google RESTful并没有提供返回数据的XML的schema,那么XML的Schema将会是什么样子的呢?让我以

JSON Schema(模式)

JSON Schema指的是数据交换中的一种虚拟的"合同". JSON验证器负责验证语法错误,JSON Schema负责提供一致性检验. JSON Schema是数据接收方额第一道防线,也是数据发送方节约时间.保证数据正确的好工具. JSON Schema可以解决下列有关一致性验证的问题. 1.  值的数据类型是否正确:可以具体规定一个值是数字.字符串等类型: 2.  是否包含所需的数据:可以规定哪些数据是需要的,哪些是不需要的: 3.  值的形式是不是我需要的:可以指定范围.最小值和

用xerces-c来进行xml schema校验

在xerces-c的官方站点上有文章指引说明是怎样进行xml schema校验. http://xerces.apache.org/xerces-c/schema-3.html 给出的样例代码: // Instantiate the DOM parser. XercesDOMParser parser; parser.setDoNamespaces(true); parser.setDoSchema(true); parser.parse(xmlFile); 但.样例代码根本不起不论什么作用.

怎样用Google APIs和Google的应用系统进行集成(8)----怎样把Google Blogger(博客)的JSON Schema转换成XML的Schema(XSD)?

在Google RESTFul API中,Google Blogger API(Google博客API)应该和我们的生活离得近期:由于差点儿非常多人每天都在看博客,都在写博客,都听说过博客.在前面的Google的应用系统进行集成(5)和Google的应用系统进行集成(6)的系列文章中.我们提到了怎样把Google Calendar和Google Tasks的JSON Schema转换成XML的XSD的Schema.从博客的訪问量来看,还是有非常多志同道合的朋友们对这个比較感兴趣,因此,这个章节.

Eclipse添加JPDL4 Schema校验

由于jbpm官方提供的图形化流程设计器(GPD)功能并不是特别的全面,很多设计并不能全在图形界面下完成.因此,在很多情况下,我们需要直接编辑JPDL的XML源代码,所以, 最好为JPDL XML指定Schema.好处: 1.在Eclipse中通过快捷键“alt+/”快速呼出语法提示 2.Schema关联可以帮助校验JPDL的语法错误 在Eclipse中配置此Schema的过程: 1.选择Window --->Preferences命令 2.选择XML ---> XML CataLog选项 3.

Json.Net使用JSON Schema验证JSON格式

Json.NET supports the JSON Schema standard via the JsonSchema and JsonValidatingReader classes. It sits under the Newtonsoft.Json.Schema namespace. Json.NET通过JsonSchema和JsonValidatingReader类,支持JSON Schema标准.这两个类位于Newtonsoft.Json.Schema命名空间. JSON Sche