我怎样才能使项目[0]和其他项目"required"不同



一个基本问题。我不太擅长json和json模式。

这是我想要的json,我要解析它。

"Struct": [

{

"Name": "toto",

"Status": "status1",

"Atouts": [

{

"Name": "atout1",

"Value": "X"

},

]

},

{

"Name": "tata",

"Status": "status2"

}
}

在这里,我只想拥有"的第一个id;Struct"->quot;名称"状态";以及";Atouts";根据需要。而其他id(在第一个之后(仅为";名称";以及";状态";根据需要。

这是我当前的模式:

"struct": {

"type": "array",

"items": {

"$ref": "#/definitions/struct_t"

}

}



"struct_t": {

"type": "object",

"required": [

"Name",

"Status",

"Atouts"


],

在这里我们可以看到;Atouts";将是Struct的所有id所必需的:(.

如果这个问题很基本,谢谢你,很抱歉!

您可以使用json模式元组验证。"items"不一定是一个对象。它也可以是一个数组,其中定义了一系列子模式。这意味着json数组的第n个项对于项的第n个子模式应该是有效的。对于没有子模式的索引,可以使用"additionalItems"。因此,现在您需要"items"的单个元素数组,并定义additionalItems"

"struct": {
"type": "array",
"items": [
{
"required": [ "Name", "Status", "Atouts"]
}
],
"additionalItems": {
"required": [ "Name", "Status"]
}
}

(如果需要,可以重构为使用"$ref"(

最新更新