有没有办法让json模式验证器来验证json对象的键?例如:
{
"$schema": "http://json-schema.org/draft-07/schema",
"type": "object",
"properties": { // here properties is an object containing user-defined keys that should be alphanumeric or underscore.
"values": {
"type": "object",
"patternProperties": {
"[a-zA-Z0-9_]+": {
"description": "Foo"
}
}
}
}
}
下面是一些应该和不应该通过的示例:
// Should pass:
{
"values": {
"myKey1": { "foo": 1 },
"myKey2_": "bar"
}
}
// Should fail but no error is shown saying this doesnt match schema:
{
"values": {
"m\1[]": 123
}
}
我尝试使用模式属性,
但任何与我的正则表达式不匹配的内容都会被忽略,不会在有问题的行上抛出任何验证错误。这与有关模式属性的文档一致:https://json-schema.org/understanding-json-schema/reference/object.html#pattern-properties
有没有办法做我正在寻找的事情?谢谢
您应该能够使用additionalProperties
使未通过所需patternProperties的对象无效。
默认情况下,允许任何附加属性。
{
"$schema": "http://json-schema.org/draft-07/schema",
"type": "object",
"properties": {
"values": {
"type": "object",
"patternProperties": {
"[a-zA-Z0-9_]+": {
"description": "Foo"
},
"additionalProperties": false
}
}
}
}
↳ JSON 架构:其他属性
我试图为我用JavaScript制作的密码验证程序开发一个regex表达式。 要求 null
json文档如下所示。我想在qml中为它定义一个类,就像typescript中的关键字一样。 我试图定义一个qml类在文件 那就用吧 但是在键下很难处理对象的向量。因为qml不允许在类A下定义类B。 那么有人知道如何定义强类型类来保存qml中从json解析的对象吗?然后我可以在qtcreator中使用自动完成的类。
问题内容: 这是我第一次在laravel中使用验证。我正在尝试对以下json对象应用验证规则。json对象名称是有效负载,下面给出示例。 验证码如下所示,出于测试目的,我将数字验证为数字。当我执行以下代码时,上面的json对象被批准并插入到我的数据库中。相反,它应该给我一个例外,因为我正在传递带有字母数字值的名称,是我做错了什么: 问题答案: 请这样 验证中的字段必须是数字,并且必须具有确切的值长
我不知道如何正确设置超架构以使用json架构验证器。我使用的是json模式验证器的java版本,版本是2.2.5。 我的模式是: 我的 json 对象是: 现在,当我将模式加载到并打算开始验证时,我得到以下警告: 除了$Schema字段之外,还有什么要配置以使用超模式的吗?
问题内容: 我试图通过构建验证两种不同对象类型的架构来弄清oneOf的工作原理。例如,一个人(名字,姓氏,运动)和车辆(类型,费用)。 以下是一些示例对象: 问题是我做错了什么以及如何解决。这是模式: 当我尝试在此解析器中验证它时: 我收到以下错误: 问题答案: 试试这个:
我正在用swagger.io起草一个API文档,并试图使其适合我们的用例。系统将接收和处理来自所有来源的数据,每个来源都有不同的字段集。 虽然处理的产品共享相同的模式,但我们也希望在模式中包含输入以供参考。例如,给定 假设对于来自不同来源的每个输入,我们最终都有和。所以我们的响应模式对象 既然我们已经定义了子对象,那么我们是否可以为原始输入定义一个自由格式的对象,以便来自另一个源的对象是有效的 如