jsonschema php 例子,[宜配屋]听图阁
本文实例讲述了php使用json-schema模块实现json校验。分享给大家供大家参考,具体如下:
客户端和服务端的http信息传递,采用json几乎成了标配。json格式简单,易于处理,不过由于没有格式规定,无法校验。
好在php有json-schema模块,可以用来验证json是否符合规定的格式。
安装使用composer
composer require justinrainbow/json-schema:~1.3
新建一个schema文件,如:schema.json
{
"type": "object",
"properties": {
"firstName": {
"type": "string",
"required": true
},
"lastName": {
"type": "string"
},
"age": {
"type": "integer",
"minimum": 0
},
"data":{
"type":"object",
"required":true,
"properties":{
}
}
}
}
可以在字段里嵌套子结构,如果properties为空,则可以任意,比如上例的data。
类型有:
array
A JSON array.
boolean
A JSON boolean.
integer
A JSON number without a fraction or exponent part.
number
Any JSON number. Number includes integer.
null
The JSON null value.
object
A JSON object.
string
A JSON string.
php代码如下:
$json = '{"firstName":"ban", "lastName":"shan","age":1,"data":{"hobby":"coding"} }';
$validator = new JsonSchema\Validator;
$schema = file_get_contents("schema.json");
$validator->check(json_decode($json), json_decode($schema));
if ($validator->isValid()) {
echo "The supplied JSON validates against the schema.\n";
} else {
echo "JSON does not validate. Violations:\n";
foreach ($validator->getErrors() as $error) {
echo sprintf("[%s] %s\n", $error['property'], $error['message']);
}
}
这样先定义好通信的schema,在json发送给客户端之前校验是否和约定相同,避免不必要的错误。
完整的代码在此。
PS:本站还提供了如下XML与JSON相关工具,方便大家参考使用:
希望本文所述对大家PHP程序设计有所帮助。
jsonschema php 例子,[宜配屋]听图阁相关推荐
- python 内推_[宜配屋]听图阁
本文实例为大家分享了网易有道2017内推编程题:洗牌,供大家参考,具体内容如下 ''' [编程题] 洗牌 时间限制:1秒 空间限制:32768K 洗牌在生活中十分常见,现在需要写一个程序模拟洗牌的过程 ...
- java将数组加上千分号_[宜配屋]听图阁
对于较大数字,添加千分号可以方便快速地读出数值.千分号是指从最右边开始,每隔三位加个逗号.这种写法很广泛,来源大概是因为英文中 Thousand,千.million,百万.billion,十亿 都是隔 ...
- 如何利用python在yi_[宜配屋]听图阁
先了解如何利用python语言实现以平面和标记物进行姿态估计 本实验只是先实现一个简单的小例子.简单来说就是先识别出图像中的参考面,再拍摄一张目标图像,将参考面顶部的3D模型投影到目标图像上. 大致步 ...
- python对数组的基本操作_[宜配屋]听图阁
这篇文章主要介绍了简单了解python数组的基本操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一,创建列表 创建一个列表,只要把逗号分隔的不同 ...
- 怎么用python打印照片_[宜配屋]听图阁
这篇文章主要介绍了Python如何使用字符打印照片,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1. 前言 第一次在学校机房里见到计算机,还是上古 ...
- python 判断节假日_[宜配屋]听图阁
不废话,直接上代码Python3.6 签到代码,只需修改url,账号,密码即可,此处是登录时无验证登录,有验证码的自行补充 # -*- coding:utf-8 -*- import json imp ...
- python telnet模块 more_[宜配屋]听图阁 - python 处理telnet返回的More,以及get想要的那个参数方法...
问题: 需要循环获取网元返回的某个参数,并计算出平均值. 解决方案: 通过expect解决返回More的问题. 通过具体的参数位置,精确获取到参数. 讨论: 参数位置固定,不好复用. #! usr/b ...
- python开发一个彩票系统_[宜配屋]听图阁
本文为大家分享了python实现彩票系统的具体代码,供大家参考,具体内容如下 功能:1.注册 2.登录 3.充钱 4.提现 5.下注 6.开奖 7.退出 简述:彩民需要用身份证号码开户注 ...
- python wxpython backend wxagg_[宜配屋]听图阁
使用Matplotlib在wxPython的Panel上绘制曲线图,需要导入: import numpy from matplotlib.backends.backend_wxagg import F ...
最新文章
- 熔断,限流,降级 一些理解
- cocoapods 终极方案
- 《JavaScript DOM 编程艺术》 读书笔记
- smtplib 抄送邮件_用Python收发电子邮件
- C#:继承过程中的静态成员
- Qt值得学习吗?详解Qt的几种开发方式
- 美团数据仓库-数据脱敏
- 获取列表中包含的元素数 在C#中
- 鹏华基金:科技赋能 打造公募基金的头部机构
- android ppsspp 存档位置,小鸡模拟器游戏存档在哪个文件夹
- APP 接口拦截与参数破解
- Linux debian利用ifconfig查看IP地址
- 王垠:完全用Linux工作及其后续
- Python实用案例,Python脚本,Python实现批量下载百度图片
- 2015美国计算机研究生就业,2015年美国计算机专业研究生排名
- 突发!又一风云人物,被警方采取刑事强制措施
- 项立刚:乔布斯展现了人类无尽的创造力
- 超简单集成HMS ML Kit二代身份证识别,一键实名认证
- Fedora 14 安装 mplayer + kmplayer
- Kotlin学习篇(2)—— Kotlin的函数
热门文章
- 快速入门虚拟机+linux安装(附带视频)
- Leetcode--671. 合并二叉树
- Leetcode--50. Pow(x,y)
- 1660用哪个驱动稳定_PDF转word怎么转?哪个PDF转换器最好用?-PDF ——快科技(驱动之家旗下媒体)-...
- php with语法,Yii框架关联查询with用法分析
- hbase集群 数据写入_Hbase实用技巧:全量+增量数据的迁移方法
- java中位数_java 计算中位数方法
- JavaSE——常用类库(下)(Date、DateFormat、Calendar、System类)
- Linux开发cocos2dx程序环境搭建
- javascript 数字精度问题