对象和依赖关系
在一个对象的定义中,您可能想指定某个属性只有在另一个属性存在的情况下才会出现。也就是说,第一个属性依赖于第二个属性。下面是一个包含依赖关系的场景。一个对象(名为member)具有一个名为credit_card的属性,它被定义为可选的。该对象的billing_address属性被设为依赖于credit_card属性:仅当credit_card属性存在时,billing_address属性才存在。
要指定这种依赖关系,可以通过以下两种方式之一:
•通过属性依赖关系(依赖的结构为属性)
•通过Schema依赖关系(依赖的结构为Schema)
属性依赖关系
下方截图显示了一个对象,它具有一个name属性(必需)、一个credit_card属性(可选)和一个billing_address属性(依赖)。billing_address属性依赖于credit_card属性。在截图的下方列出了此JSON对象定义的代码片段。下方进一步描述了如何创建属性依赖关系。
{ "type": "object", "properties": { "name": { "type": "string" }, "credit_card": { "type": "number" }, "billing_address": { "type": "string" } }, "required": [ "name" ], "dependencies": { "credit_card": [ "billing_address" ] }, "additionalProperties": false }
|
要创建属性依赖关系,请执行以下操作:
1.右键单击依赖关系所基于的属性。(在本例中是credit_card属性。)
2.在出现的上下文菜单中选择添加依赖关系 | 依赖属性。这将添加一个属性,其出现的值为依赖。
3.为该属性定义名称和值,然后根据需要添加其他任何详细信息或约束。
要将属性指定为依赖于另一个属性,请执行以下操作:
1.右键单击要依赖于另一个属性的属性。(在本例中是billing_address属性。)
2.在出现的上下文菜单中,选择依赖。或者,在“详细信息”输入助手中,转至出现条目并选择依赖(参见上方截图)。
3.在“详细信息”输入助手中,单击依赖于条目的下拉列表图标。下拉列表显示该对象的所有其他属性。选择想要当前属性依赖的属性。
提示: | 在处于依赖关系的两个属性框中会出现一个图标(参见上方截图)。双击一个属性的图标会将您带到另一个属性。 |
提示: | 一个属性可以具有多个依赖属性。 |
Schema依赖关系
下方截图显示了一个描述与上一部分中讨论的对象相同的实例数据结构的对象。但是,这两个对象的定义是不同的。之前的定义是用属性依赖关系来将billing_address属性定义为依赖于credit_card属性,而当前的定义是用Schema依赖关系来定义该依赖项。截图的下方列出了第二个JSON对象定义的代码片段。下方进一步描述了如何创建Schema依赖关系。
{ "type": "object", "properties": { "name": { "type": "string" }, "credit_card": { "type": "integer" } }, "required": [ "name" ], "dependencies": { "credit_card": { "properties": { "billing_address": { "type": "string" } }, "required": [ "billing_address" ] } } }
|
要创建Schema依赖关系,请执行以下操作:
1.右键单击依赖关系所基于的属性。(在本例中是credit_card属性。)
2.在出现的上下文菜单中,选择添加依赖关系 | Schema依赖关系。这将创建一个新的对象定义。它被赋予与它所依赖的属性相同的名称(在本例中是credit_card),并且有一个子Schema。
3.根据需要定义子Schema,并添加所需的任何其他详细信息或约束。
提示: | 在处于依赖关系的属性框和对象框中会出现一个图标(参见上方截图)。双击一个方框中的图标会将您带到另一个方框。 |
提示: | 如果您希望设置多个依赖关系,请在依赖的子Schema中执行此操作(参见上方截图)。 |