具有原始类型或$ ref类型的JSON模式对象?

时间:2019-05-14 20:50:54

标签: json jsonschema

我有一个架构,其中特定的属性(child)可以是string,也可以是我已经定义的对象(ChildClass)。但是,我很难在模式中定义它:

{
  definitions": {
    "ChildClass": { ... },
    "ParentClass": {
      "description": "The parent object",
      "type": [ "object" ],
      "properties": {
        "child": {
          "anyOf": [
            { "$ref": "#/definitions/ChildClass" },
            "string"
          ]
        }
      }
    }
  }
}

我可以使用"string"定义我引用的定义,但不能同时使用(与anyOf)。是什么合适的语法才能使架构理解其中任一有效?

1 个答案:

答案 0 :(得分:2)

anyOf关键字需要模式作为其项。 "string"本身不是架构。尝试使用

{"type": "string"}

anyOf引用旁边的ChildClass内。