首页 文章

类似结构的常见JSON模式

提问于
浏览
-1

我对json和json架构完全不熟悉,所以我有一个问题(但我不知道它有多大意义) . 我们可以创建一个json模式,这对于相似类型的结构是常见的 . 例如:

可以使用一个单一模式来验证以下json

JSON:

{
"Team_Table":
[{"Name":"New Zealand", "Match":"Six", "Won":"Six"}]
}

{
"Story_Taller":
[{"Story":"No Name", "Chapter":"Don't know"}]
}

相似点:

  • 两者在数组中只有一个对象

  • 对象具有字符串值 .

不同点:

  • 属性数量不同

  • 两个键都不同

我们可以这样做吗?

1 回答

  • 0

    也许这可以帮助你:

    {
      "properties": {
        "Story_Taller": {
          "type": "array",
          "maxItems": 1,
          "items": {
            "properties": {
              "Chapter": {
                "type": "string"
              },
              "Story": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "Team_Table": {
          "type": "array",
          "maxItems": 1,
          "items": {
            "properties": {
              "Name": {
                "type": "string"
              },
              "Match": {
                "type": "string"
              },
              "Won": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        }
      },
      "oneOf": [
        {
          "title": "Story_Taller",
          "required": [
            "Story_Taller"
          ]
        },
        {
          "title": "Team_Table",
          "required": [
            "Team_Table"
          ]
        }
      ]
    }
    

    in(短)字:

    在您的JSON中,必须有一个属性为“Story_Taller”或“Team_Table”,最多为1个项目

    "oneOf": [ ... ]
    

    两个数组的属性由项定义

    “Story_Taller”必须具有“章节”和“故事”,并且没有其他属性 . “Team_Table”必须具有“名称”,“匹配”,“赢”并且没有其他属性 . 并且所有这些都被定义为字符串 .

相关问题