【问题标题】:Variable object names in JSON schemaJSON 模式中的变量对象名称
【发布时间】:2017-05-09 15:18:41
【问题描述】:

我正在尝试在 JSON 模式中定义以下内容:

"codenumber": {
     "12345": [
        {
           "prop1": "yes",
           "prop2": "no"
        }
     ]
  }

codenumber 对象包含一个属性“12345”,它始终是一个包含数组的字符串数字。然而,数值可以改变,所以我不能简单地这样定义:

"codenumber": {
          "type": "object",
          "properties": {
              "12345": { 
                "type": "array",
                "items": {
                    "type": "object",
                    "properties": {
                        "prop1": { "type": "string" },
                        "prop2": { "type": "string" }
                    }
                }
              }
          }  
      }

我可以将第一个属性名称定义为任何类型的字符串吗?

【问题讨论】:

  • 使用 json 模式定义了允许/可以验证的属性。将变量作为属性名称有点违背模式的目的?

标签: json jsonschema


【解决方案1】:

您可以使用“patternProperties”代替“properties”:

"codenumber": {
      "type": "object",
      "patternProperties": {
          "^[0-9]+$": { 
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "prop1": { "type": "string" },
                    "prop2": { "type": "string" }
                }
             }
         }
     }  
 }

【讨论】:

    猜你喜欢
    • 2013-06-01
    • 2020-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-13
    • 2016-02-19
    • 2021-11-04
    相关资源
    最近更新 更多