当前位置: 首页 > 知识库问答 >
问题:

JSON模式中的“required”关键字

吴高峰
2023-03-14

我从http://json-schema.org/examples.html获得了下面的模式,我想知道所需的关键字是否只能出现在顶层。如果有Object类型的属性,它也可以包含在属性中。我在https://datatracker.ietf.org/doc/html/draft-fge-json-schema-validation-00#section-5.4.3规范中找不到任何与此相关的内容。

{
    "title": "Example Schema",
    "type": "object",
    "properties": {
        "firstName": {
            "type": "string"
        },
        "lastName": {
            "type": "string"
        },
        "age": {
            "description": "Age in years",
            "type": "integer",
            "minimum": 0
        }
    },
    "required": ["firstName", "lastName"]
}
{  
   "title":"Example Schema",
   "type":"object",
   "properties":{  
      "firstName":{  
         "type":"string"
      },
      "lastName":{  
         "type":"string"
      },
      "age":{  
         "type":"object",
         "properties":{  
            "minAge":{  
               "type":"number"
            },
            "maxAge":{  
               "type":"number"
            },
            "required":[  
               "minAge",
               "maxAge"
            ]
         }
      }
   },
   "required":[  
      "firstName",
      "lastName"
   ]
}

共有1个答案

隆康平
2023-03-14

4.4有可能验证容器实例(数组或对象)的关键字只验证实例本身,而不验证它们的子实例(数组项或对象属性)。

所以我明白了,是的,您可以在任何级别上进行验证,但验证应该只在所需的相同级别上进行

 类似资料:
  • 问题内容: 请看以下示例: 我已将的功能标记为。这到底是什么意思?我在子类中完全省略了它,并且编译器完全没有抱怨。那么,它是如何要求的呢? 问题答案: 请参见“自动初始化继承”: 规则1 如果子类没有定义任何指定的初始化器,它将自动继承其所有超类指定的初始化器。 规则2 如果您的子类提供了其所有超类指定初始化器的实现(通过按规则1继承它们,或通过提供自定义实现作为其定义的一部分),则它会自动继承所

  • 模式匹配,多出现在函数式编程语言之中,为其复杂的类型系统提供一个简单轻松的解构能力。比如从enum等数据结构中取出数据等等,但是在书写上,相对比较复杂。我们来看一个例子: enum Direction { East, West, North, South, } fn main() { let dire = Direction::South; matc

  • 本章主要介绍一些Docker Engines1.12集群管理和业务流程特性的独特概念。 Swarm是什幺? Docker Engines的集群管理和业务流程功能是由swarmkit构建的。Swarmkit是一个独立的项目,由Docker直接调用来实现Docker的业务流程层。 Swarm由多个运行了swarm模式Docker Engine的宿主机组成,每一个宿主机扮演了manager角色或者wor

  • 是否可以定义一次regex并重用它?我有几个非常复杂的正则表达式,我想将它们用作模式,用于模式中各种不同对象的大量属性的值。复制粘贴这个看起来像是自找麻烦,但我似乎找不到合适的重用示例。 删去说明我想做什么的模式。 在http://www.jsonschemavalidator.net/中不进行验证,因为“pattern”不是字符串。这是一个重复使用的洞吗。我看过patternProperties

  • 本文向大家介绍JavaScript调用模式与this关键字绑定的关系,包括了JavaScript调用模式与this关键字绑定的关系的使用技巧和注意事项,需要的朋友参考一下 Invocation 调用 调用一个函数将暂停当前函数的执行,传递控制权和参数给新函数。 实参与形参不一致不会导致运行时错误,多的被忽略,少的补为undefined 每个方法都会收到两个附加参数:this和arguments。t

  • 问题内容: 我知道除了抽象之外,所有这些都是做 什么 的。我目前正在用我认为是中学程度的教育来教自己java(我的高中就在一个不好的邻居里,所以我很着急)… 但是这些关键字的使用模式到底是什么?我什么时候使用什么?我什么时候省略它们?将“ public”放在班级前面会使使用该班级的每个班级都需要一个新文件,如果要创建一个整体的源文件,我是否可以忽略一下? 我查找的每条信息都准确解释了这些功能,只是