软件简介

JSON Schema 用于描述JSON数据的结构和类型。如同DTD与XML的关系。

本实现用于使用 PHP 调用 JSON Schema 对 JSON 数据进行验证。

生成 JSON Schema

由JSON生成一个全格式的Schema,方便编辑修改(勿随便直接使用在实践中)。

$value = new stdClass();

$value->name = 'a name';

$value->age = 23;

$value->height = 183.5;

$jsonSchema = new JsonSchema(json_encode($value));

echo $jsonSchema->getSchema();

结果(真实结果格式化后)

{

"type":"object",

"properties":{

"name":{

"type":"string",

"format":"regex",

"pattern":"\/^[a-z0-9]+$\/i",

"minLength":0,

"maxLength":2147483647

},

"age":{

"type":"integer",

"default":0,

"minimum":0,

"maximum":2147483647,

"exclusiveMinimum":0,

"exclusiveMaximum":2147483647

},

"height":{

"type":"number",

"default":0,

"minimum":0,

"maximum":2147483647,

"exclusiveMinimum":0,

"exclusiveMaximum":2147483647

}

}

}

使用 JSON Schema 验证 JSON

$userType = '

{

"id": "user",

"description": "user info",

"type": "object",

"properties": {

"account": {"type": "string"},

"email": {"type": "string", "required": true},

"noexist": {"type": "string", "required": false}

}

}';

$type = array();

$type['users'][] = array('account' => 'userA', 'email' => 'userA@example.com');

$type['users'][] = array('account' => 'userB', 'email' => 'userB@example.com');

$type['users'][] = array('account' => 'userC', 'email' => 'userC@example.com');

$jsonSchema = new JsonSchema(json_encode($type));

$jsonSchema->addTypes($userType);

$jsonSchema->validate('

{

"type":"object",

"properties":{

"users":{

"type":"array",

"items":{

"$ref":"user"

}

}

}

}');

php json schema,json-schema-php相关推荐

  1. json to graphql schema: json2graphql

    json2graphql json2graphql 是一个根据 json 生成 GraphQL Schema 的工具. 可在 https://luojilab.github.io/js... 在线体验 ...

  2. php json schema,JSON Schema Validation介绍

    工作中经常会开发一些接口公布出去,接口以HTTPHandler方式挂载在ASP.NET上,是以*.filetype的后缀形式路由到具体的处理类中.接口参数以JSON格式通过post方法写在Reques ...

  3. NET流行高性能JSON框架-Json.NET

    在日常编程中经常会使用到Json来进行数据的交互好在.Net平台下有很多开源的Json库使得我们能够比较轻松快速的处理各种复杂的Json,其中Newtonsoft库 是NET的流行高性能JSON框架 ...

  4. es只能用于json_什么是json和json用于什么

    es只能用于json When you do a search for JSON, you get highly technical answers online. In this article, ...

  5. javascript json和json字符串互转

    javascript json和json字符串互转 <!DOCTYPE html> <html lang="en"><head><meta ...

  6. 使用Newtonsoft.Json.dll(JSON.NET)动态解析JSON、.net 的json的序列化与反序列化(一)...

    在开发中,我非常喜欢动态语言和匿名对象带来的方便,JSON.NET具有动态序列化和反序列化任意JSON内容的能力,不必将它映射到具体的强类型对象,它可以处理不确定的类型(集合.字典.动态对象和匿名对象 ...

  7. Newtonsoft.Json(Json.net)的基本用法

    Newtonsoft.Json(Json.net)的基本用法 添加引用: 使用NuGet,命令:install-package Newtonsoft.Json 实体类: public class Bo ...

  8. javascript 数组和对象的浅复制和深度复制 assign/slice/concat/JSON.parse(JSON.stringify())...

    javascript 数组和对象的浅度复制和深度复制 在平常我们用 '='来用一个变量引用一个数组或对象,这里是'引用'而不是复制下面我们看一个例子引用和复制是什么概念 var arr=[1,2,3, ...

  9. 使用JSON.parse(),JSON.stringify()实现对对象的深拷贝

    使用JSON.parse(),JSON.stringify()实现对对象的深拷贝 根据不包含引用对象的普通数组深拷贝得到启发,不拷贝引用对象,拷贝一个字符串会新辟一个新的存储地址,这样就切断了引用对象 ...

  10. python 编码文件json.loads json.dumps

    python 编码文件json.loads json.dumps import yaml d = {'name': '张三', 'age': '1'} print d jd = json.dumps( ...

最新文章

  1. Some Rules from wrting your own dsl with ruby
  2. linux硬盘满了问题排查
  3. JDK(JAVA)的安装和配置
  4. SQL Server 查看identity值的几种方法。
  5. 程序猿段子_【新年新气象】今年,能为程序员男友做点什么?
  6. bootstrap --- 按钮
  7. 【渝粤教育】 国家开放大学2020年春季 3956★汽车故障诊断技术 参考试题
  8. oracle18c如何创建hr用户,Oracle18c创建不带C##的用户
  9. 时间序列分析和预测(含实例及代码)
  10. 今日头条的企业服务产品线
  11. java 解析xml工具类_轻松解析XML的工具类
  12. 个人对计算机专业的认知
  13. AI数学基础(1)--- 马尔可夫不等式
  14. STM32的内存扩展应用实现,小内存的单片机也能干大事(FSMC+SRAM)
  15. 【Adobe Illustrator 教程】3. 认识钢笔工具
  16. React基础之事件机制
  17. 从绘制 圆形(circle)说开
  18. mysql signal_[MySQL]MySQL的signal sqlstate
  19. 【汇智学堂】-div+css布局十二(商品列表图文展示)
  20. 二十分(java更新至2021年)

热门文章

  1. Android中onActivityResult/startActivityForResult用法
  2. mysql函数之一:INSTR、LOCATE、POSITION VS LIKE
  3. 微软职位内部推荐-Senior Software Lead-Index Gen
  4. [转].net中的认证(authentication)与授权(authorization)
  5. HAProxy + Keepalived实现MySQL的高可用负载均衡
  6. 设计了一个JavaScript的源代码混淆器
  7. 无需越狱手机,下载越狱版本IPA的方法
  8. var a=1和var a =b的区别
  9. SQL将A表的现有数据添加到B表,通过A表现有数据更新B表
  10. Gogs代码托管系统安装配置手册