php json schema,json-schema-php

软件简介

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"

}

}

}

}');

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值