Altova XMLSpy 2023 Enterprise Edition

数组是一个由零个或多个有序项组成的列表;它用方括号分隔。列表中的每个数据项都被分配了一个类型。下方列出的实例代码片段是一个具有三个属性的对象。每个属性的值都是一个数组(分隔符突出显示为黄色)。

 

{

"x": [ 1, 2, "abc" ],

"y": [ 3, 4, "def" ],

"z": [ 5, 6, "ghi" ]

}

 

上方的代码片段中的所有三个数组都有相同的定义。每个数组都包含三个数据项,它们按以下顺序排列:(i) 数字项、(ii) 数字项、(iii)字符串项。下方截图显示了此对象的Schema描述。由于这三个数组的定义都是相同的,所以它已在一个名为array_01的全局数组中被创建。这三个数组(xyz)中的每一个都引用了全局数组array_01

JSONArray01

在上方截图中,选择了数组x(突出显示为蓝色),其详细信息和约束都显示在相应的输入助手中(参见上方截图)。您可以看到其中对允许的数据项数量做出了约束。该数量可以在“约束”输入助手中编辑并显示在图表中。数组项可以在数组自身的定义中定义,在这种情况下是全局定义array_01参见下方截图)。

JSONArray02

请注意以下几点:

 

Unique约束指定数组中的所有数据项都必须是唯一的。

数据项的编号从0开始。

3 <= items <= 3Items: 3..3参见上方截图),分别表示允许的最小和最大项数。在这种情况下,必须正好有三个数据项。

 

添加数组项、数组项通配符和contains关键词

数组项、数组项通配符和数组的contains关键词都是通过定义或数组项的上下文菜单添加的。

 

数组项通配符允许在数组中包含更广泛的对象。

contains关键词指定contains关键词的值必须是一个有效的JSON Schema,并且数组中至少有一个元素必须根据引用的Schema对象是有效的。从2019-09版本开始,引入了minContainsmaxContains关键词。这些在“详细信息”输入助手中显示为Contains框中的MinMax属性(参见下方截图),它们定义了有多少个数据项可以匹配被引用的Schema对象。

JSONSchemaArrayContains

 

© 2017-2023 Altova GmbH