json-schema-php

码农软件 · 软件分类 · JSON/BSON开发包 · 2019-04-01 11:14:22

软件介绍

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"
             }
          }
       }
    }');

本文地址:https://codercto.com/soft/d/2616.html

Java5.0Tiger程序高手秘笈

Java5.0Tiger程序高手秘笈

BrettMclaughlin / 东南大学出版社 / 2005-10 / 28.00元

代号为 “Tiger”的下一个 Java 版本,不只是个小改动版。在语言核心中有超过 100 项以上的变动,同时有大量的对 library 与 API 所做的加强,让开发者取得许多新的功能、工具与技术。但在如此多的变化下,应该从何处开始着手?也许可以从既长又无趣的语言规范说明书开始看起;或等待最少 500 页的概念与理论巨著出版;甚至还可以直接把玩新的 JDK 看看能够有什么发现;或者借由《Jav......一起来看看 《Java5.0Tiger程序高手秘笈》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具