我有类似于下面的JSON文档
for ( $i = 0; $i < $resultcount; $i ++ ) {
$pattern = '%\b^((https?://)|(www\.)|(^[a-z]+\.))([a-z0-9-].?)+(:[0-9]+)?(/.*)?$%';
$message = (string)$result[$i]['message'];
preg_match_all($pattern,$message,$match);
print_r($match);
}
我想要的是一个键值对列表,其中键将是计算机的名称,值将是计算机的属性。同样在这些值中,我可以有多个键值对,如上所示。
我已经用草案6编写了JSON Schema,如下所示
export default class WidgetModel extends Component {
constructor() {
super()
}
render() {
const { } = this.props,
return (
<p>{Copy}</p>
)
}
}
你可以尝试here。
问题是我不想让用户输入“虚拟”值,如上面给出的JSON所示。显然 <div id="widget">
<p>@vm.Copy</p>
</div>
无效。我该怎么办?
答案 0 :(得分:1)
您的主要问题是您的架构描述了您的数据没有的名为“计算机”的顶级属性。因此,您测试的数据都不受模式的限制。另一个问题是你的正则表达式与大写字符不匹配。
{
"$schema": "http://json-schema.org/draft-06/schema#",
"patternProperties": {
"^[a-zA-Z0-9-_]+$": {
"additionalProperties": false,
"properties": {
"memory": {
"patternProperties": {
"^[a-zA-Z0-9-_]+$": {
"additionalProperties": false,
"properties": {
"RamType": { "type": "string" },
"Size": { "type": "number" }
}
}
}
}
}
}
}
}