php生成json信息(php使用json-schema模块实现json校验示例)
类别:编程学习 浏览量:2460
时间:2021-10-16 00:53:44 php生成json信息
php使用json-schema模块实现json校验示例本文实例讲述了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发送给客户端之前校验是否和约定相同,避免不必要的错误。
参考链接,json-schema 文档,php的json-schema 实现。
完整的代码在此。
希望本文所述对大家PHP程序设计有所帮助。
原文链接:https://www.cnblogs.com/xdao/p/json-schema_use_php.html
您可能感兴趣
- php如何设置命名空间(PHP进阶学习之命名空间基本用法分析)
- php支付系统(php实现的支付宝网页支付功能示例基于TP5框架)
- php去水印方法(PHP开发的文字水印,缩略图,图片水印实现类与用法示例)
- php 依赖注入(详解php命令注入攻击)
- 腾讯云换php版本(腾讯云服务器配置php环境的方法)
- php启用curl(php使用curl伪造浏览器访问操作示例)
- php中怎么判断变量类型(PHP INT类型在内存中占字节详解)
- php中抽象类和接口的区别(PHP抽象类和接口用法实例详解)
- php优势和缺点(PHP的介绍以及优势详细分析)
- 宝塔面板php能切换吗(BT宝塔面板更换网站PHP版本)
- 解释php中可变变量并举例说明(PHP Primary script unknown 解决方法总结)
- php数据类型图解(php使用filter_var函数判断邮箱,url,ip格式示例)
- php数组练习题答案(PHP 数组黑名单/白名单实例代码详解)
- iis运行php程序(Windows2003+IIS7 Express使用FastCgi运行php)
- php 5与7有什么改变(php5与php7的区别点总结)
- phpcurl请求能在日志里记录吗(php使用curl模拟多线程实现批处理功能示例)
- 巅峰时期被爆床照,曾被选国民最讨厌女星,IU不为人知的黑历史(巅峰时期被爆床照)
- 每天1万吨牛奶倒进下水道,美国大萧条一幕重现(每天1万吨牛奶倒进下水道)
- 如何看待美国数十万加仑牛奶倒下水道 历史又重演了(如何看待美国数十万加仑牛奶倒下水道)
- 历史惊人的相似,美国80万加仑牛奶倒入下水道,意味着什么(历史惊人的相似)
- 美国数十万加仑牛奶倒进下水道,世界会重演1929年的大萧条吗(美国数十万加仑牛奶倒进下水道)
- 美国数十万加仑牛奶倒入下水道,贫民区食不果腹,历史再次重演(美国数十万加仑牛奶倒入下水道)
热门推荐
- C#中Serializable序列化
- Vps主机和云服务器的区别(Vps主机和云服务器的区别)
- nginx优化分几种(Nginx优化服务之网页压缩的实现方法)
- docker 容器相关问题(docker空间爆满导致的进入容器失败的解决方案)
- jquery留言板代码(JavaScript实现留言板添加删除留言)
- python什么是深拷贝什么是浅拷贝(Python深拷贝与浅拷贝用法实例分析)
- 如何用jquery进行表单验证(jQuery实现发送验证码控制按钮禁用功能)
- tomcat在linux系统安装步骤(Tomcat的卸载和重装的实现图文)
- 云服务器哪个公司适合做(企业云服务器适用企业有哪些?)
- C#中的属性、和字段的区别
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9