加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php使用json-schema模块实现json校验示例

发布时间:2022-06-27 10:33:26 所属栏目:PHP教程 来源:互联网
导读:本文实例讲述了php使用json-schema模块实现json校验,分享给大家供大家参考,具体如下: 客户端和服务端的http信息传递,采用json几乎成了标配,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 JsonSchemaValidator;
  $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] %sn", $error['property'], $error['message']);
    }
  }
  这样先定义好通信的schema,在json发送给客户端之前校验是否和约定相同,避免不必要的错误。
 
 

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读