JSON模式:如何扩展更多属性?

时间:2019-05-27 07:22:13

标签: jsonschema

假设我有一个简单的JSON,例如:

"values": {
    "A": 0,
    "B": 0,
    "C": 0,
    "D": 0,
    "E": 0,
}
A,B,C是基本模式T1的一部分,而D,E是扩展模式T2的一部分。因此,架构T1具有3个属性,而T2具有5个属性。我想避免在两种模式下都写两次A,B,​​C。

JSON模式中是否有扩展属性列表的内容?

1 个答案:

答案 0 :(得分:1)

如果要以反映扩展对象的方式拆分架构,其中某些架构具有additionalProperties: false,则需要提升additionalProperties: false

您可以在每个架构中使用一个定义来定义不带AdditionalProperties:false的对象,然后根架构allOf引用带有AdditionalProperties:true的定义。然后,在其他架构中,您可以引用先前架构的定义。

不幸的是,这是草案7的限制。在草稿8中,可以使用新关键字来做您想做的事,但尚未发布。