Json Schema - 如何表达字段混合类型(字符串和对象)?

pl0*_*l0u 5 json jsonschema json-schema-validator

我的数据中有一个字段可以多次输入:

它可以是 type=string,其架构如下:

{"mixed_field" : {"type":"string"} }
Run Code Online (Sandbox Code Playgroud)

其他时候可能是 type=object,架构如下所示:

{"mixed_field" : {
  "properties": {
    "access_token": {
      "type": "string"
    },
    "created_at": {
      "type": "integer"
    }
  },
  "type": "object"
  }
}
Run Code Online (Sandbox Code Playgroud)

如何表达“mixed_field”可以是字符串类型或对象类型?我应该按如下方式使用“oneOf”关键字吗?

{
  "mixed_field": {
    "oneOf": [
      {
        "type": "string"
      },
      {
        "properties": {
          "access_token": {
            "type": "string"
          },
          "created_at": {
            "type": "integer"
          }
        },
        "type": "object"
      }
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

esp*_*esp 2

您可以使用 oneOf/anyOf 或使用"type": ["string", "object"],如果它是字符串“properties”关键字将被忽略。