没有"属性的JSON模式"关键词

时间:2017-03-23 13:17:33

标签: json jsonschema

供应商发给我一个json架构。请看这个:

{
  "$schema" : "http://json-schema.org/draft-04/schema#",
  "type" : "object",
  "definitions" : {
    ...
  },
  "oneOf" : [{
      "$ref" : "#/definitions/commons/strings/text"
    }, {
      "$ref" : "#/definitions/dto/scriptStep"
    }, {
      "$ref" : "#/definitions/dto/callResult"
    }
  ]
}

没有"属性"关键字(但顺便说一下,有非常大的"定义"部分)。这是否意味着模式实际上描述了空的json对象{}?或者它是否意味着json可以包含来自" oneOf"阵列

1 个答案:

答案 0 :(得分:3)

所有JSON Schema关键字都是约束。例如,空模式{}表示任何JSON都有效。只有`{" type":" object"意味着任何JSON对象都是有效的。对象具有哪些属性没有限制。

但是,这不是您的供应商在此架构中表达的内容。 JSON不必仅针对"type": "object"有效,而且还针对oneOf中引用的三种模式之一。据推测,这些架构包含properties关键字。

这可能不是最好的设计架构,但它是有效的。