jSonschema和验证子对象属性

问题描述 投票:0回答:1

这个对象包含每个子对象具有相同结构的子对象 - 它们都是相同的类型。 每个子对象都是唯一键入的,因此它的作用就像一个命名数组。

我想验证
objects
属性中的每个对象都针对JSON架构参考验证。

如果是一个数组,例如:

objects

我可以使用架构定义来验证这一点,例如:

{ "objects": [ { "id": 1, "name": "Foo" }, { "id": 2, "name": "Bar" } ] }

这是因为

{
  "id": "my-schema",
  "required": [
    "objects"
  ],
  "properties": {
    "objects": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "name"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          }
        }
      }
    }
  }
}

type
而实现的,这允许验证。

可以做类似的事情,但是使用嵌套对象?

thanks!

	
您可以尝试这样的事情:

array

上面的答案适用于将对象属性名称限制为下案字母。  如果您不需要限制属性名称,则更简单:

items

i我从上面的答案中省略了内部

{ "id": "my-schema", "type": "object", "properties": { "objects": { "type": "object", "patternProperties": { "[a-z]+": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" } }, "additionalProperties": false, "required": [ "id", "name" ] } } } } }

,因为我发现使用该关键字会导致比其解决的问题更多,但是如果您希望验证在内部对象上失败,则是关键字的有效用途,如果它们具有其他属性而不是“名称”和“ id”。
javascript json jsonschema
1个回答
6
投票

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.