我想知道我是否可以定义一个JSON模式(草案4),它至少需要对象的许多属性中的一个。我已经知道所有
、任一
和之一,但就是不知道如何以我想要的方式使用它们。
下面是一些JSON示例来说明:
// Test Data 1 - Should pass
{
"email": "hello@example.com",
"name": "John Doe"
}
// Test Data 2 - Should pass
{
"id": 1,
"name": "Jane Doe"
}
// Test Data 3 - Should pass
{
"id": 1,
"email": "hello@example.com",
"name": "John Smith"
}
// Test Data 4 - Should fail, invalid email
{
"id": 1,
"email": "thisIsNotAnEmail",
"name": "John Smith"
}
// Test Data 5 - Should fail, missing one of required properties
{
"name": "John Doe"
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "https://example.com",
"properties": {
"name": {
"type": "string"
}
},
"anyOf": [
{
"properties": {
"email": {
"type": "string",
"format": "email"
}
}
},
{
"properties": {
"id": {
"type": "integer"
}
}
}
]
}
若要至少要求一组属性中的一个,请在一系列Anyof
选项中使用Required
:
{
"type": "object",
"anyOf": [
{"required": ["id"]},
{"required": ["email"]}
// any other properties, in a similar way
],
"properties": {
// Your actual property definitions here
}
{
如果存在所需的任何属性(“id”
、“email”
),那么它将在Allof
中传递相应的选项。
我有这个OpenAPI模式: 所有属性都是必需的。这是用于<code>PUT/user/profile<code>的。 我会把它改成 。用户发送的参数只是他们只请求更改。系统验证至少需要一个参数。 我如何描述[用户名,电子邮件,描述,个人资料_图标]之一是必需的? 可接受的示例请求: 不可接受的示例(错误): 注释器很接近,但它似乎仅适用于模式,而不是属性。 https://swagger.io/
我想知道我是否可以定义一个JSON模式(草案4),它要求许多属性中至少有一个具有特定的值。 为了说明这一点,下面是一个我希望验证失败的JSON示例: 但是,如果上面的任何(一个或多个)属性设置为,只有这样我才会期望它通过验证。 那么模式是什么呢? 非常感谢提前!
问题内容: 如何检查以下json中数组中的至少一个元素是否具有具有值的属性? 目前,我正在使用06版草案(此处为 FAQ )。 这是我的NOT WORKING模式: 问题答案: 我设法用弄清楚了。在此版本中,添加了新的关键字。根据此规范草案: 包含 此关键字的值必须是有效的JSON模式。如果数组实例的至少一个元素对给定架构有效,则该数组实例对“包含”有效。 工作模式:
我正在编写一个工具来处理Resume.Json文件(项目),并正在创建一个Json模式来验证用户输入。我试图用json.net.schema实现自动化,但是输出总是要求所有属性,不管这些属性是还是属性。 如何让架构生成器遵守属性?
对于JSON: 草案中提出的模式如下 我的问题是JSON本身没有定义它的结构吗?是否需要单独的模式?
我有这个猫鼬帖子模式。 在验证中,类型为,