JSON 模式 oneOf 属性已填充

2024-02-19

如何设置 JSON 架构规则来表明必须设置并且是必需的属性之一?

我尝试了各种方法来解决它,例如:

{
   "id":"#",
   "required":true,
   "additionalProperties":true,
   "type":"object",
   "properties":{
      "surname":{
         "id":"surname",
         "required":true,
         "type":"string"
      },
      "oneOf":[
         {
            "$ref":"#/definitions/station_id"
         },
         {
            "$ref":"#/definitions/station"
         }
      ]
   },
   "definitions":{
      "station_id":{
         "type":"integer"
      },
      "station":{
         "type":"string"
      }
   }
}

但它从来没有奏效。我需要做的是接受 station_id (整数)或 station (字符串名称)。

请问有办法做到吗?


oneOf仅当直接在模式内使用时才特殊。当你使用oneOf inside properties,那么它没有特殊含义,所以你实际上最终定义了一个名为"oneOf"反而。

另外 - 要求某些东西的不是属性定义,而是required关键词。该关键字是必需属性的数组(不是布尔值,这是旧语法)。

为了做你想做的事,你做了一个oneOf其中一个选项有的子句"station_id"需要,另一个有"station"必需的:

{
    "oneOf": [
        {"required": ["station"]},
        {"required": ["station_id"]}
    ]
}

If both存在,那么数据将无效(因为只有一个oneOf允许通过)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JSON 模式 oneOf 属性已填充 的相关文章

随机推荐

  • 将 yyyymmdd 字符串转换为 R 中的 Date 类

    我想将这些格式为 YYYYMMDD 的日期转换为 Date 类 dates lt data frame Date c 20130707 20130706 20130705 20130704 I tried dates lt as Date
  • XNA 抽签:在整个游戏中使用一个 spritebatch

    我正在开发一款 XNA 游戏 现在是我仔细考虑架构的时候了 直到今天 我一直以这种方式实现我自己的绘制方法 public void Draw SpriteBatch sb GameTime gameTime sb Begin to draw
  • 在 Visual Studio 中配置 mex 函数

    In here http msdn microsoft com en us library ms182372 aspx解释了如何在 Visual Studio 中分析 exe 文件 有没有办法使用相同的过程来分析墨西哥代码 Thanks 你
  • 如何检测精灵套件中的碰撞?

    我正在 Sprite Kit 中制作游戏 但我在 SpriteNode 之间的碰撞检测方面遇到了困难 我设置了一个名为 sprite 的精灵节点和一个名为 platform 的精灵节点 我希望精灵在与平台碰撞时停止掉落 这就是我所拥有的 S
  • 使用 Matlab 绘制 3D RGB 立方体模型

    我编写了这段代码来绘制 RGB 立方体 但它的颜色并不完全准确 Define a six row by four column matrix to define the six cube faces fm 1 2 6 5 2 3 7 6 3
  • onbeforeunload 事件上的 jQuery.ajax 不起作用

    我有一个像这样的 php 页面 I am creating lo
  • 使用Qt编译测试程序时出错

    我对 C Qt 还很陌生 我正在关注 Jasmin Blanchette 和 Mark Summerfield 所著的 使用 Qt 4 进行 C GUI 编程 一书 我正在编写一个示例程序 并遇到了一些无法解决的编译错误 下面的代码和错误
  • MongoDB:更新文档中的字典

    我有一个 MongoDB 文档 用于保存字典中出现的某些内容 id 1 occurrences 1 1 2 5 17 1 35 4 我现在想要添加或更新一些条目 例如向出现的次数添加 12 3 或者将 17 的出现次数更新为 2 所以假设我
  • C# 正则表达式匹配方括号

    我尝试在 C 中使用正则表达式来匹配可以包含以下内容的软件版本号 2 位数字 1 或 2 位数字 不以 0 开头 另一个 1 或 2 位数字 不以 0 开头 1 2 3 4 或 5 位数字 不以 0 开头 末尾有一个选项字母 括在方括号中
  • 将设计身份验证合并到现有的用户结构中?

    我有一个功能齐全的身份验证系统 其中的用户表有超过五十列 它很简单 但它使用盐进行哈希加密 使用电子邮件而不是用户名 并且还有两种不同类型的用户和管理员 我希望将 Devise 身份验证合并到我的应用程序中 以增强额外的部分 例如电子邮件验
  • gcc 如何在特定平台上获得每种类型的对齐方式?

    它是硬编码到 gcc 的源代码中还是以编程方式获取 我认为它是硬编码在特定于 arch 的文件夹中的 例如对于sparc http www google com codesearch Yj7Hz1ZInUg trunk gcc 4 2 1
  • C:修改文件以从外部文件读取

    我正在努力通过C 编程语言 第二版 尝试通过例子进行推理 我对 C 是个新手 第一章中的大部分示例代码依赖于getchar 接收输入 例如 以下代码返回文本块的最长行 include
  • 我将如何实现不同速度的秒表?

    理想情况下 我想要类似的东西跑表 http msdn microsoft com en us library system diagnostics stopwatch aspx类 但有一个额外的属性称为Speed这将决定计时器改变分钟的速度
  • 为什么flask sqlalchemy模型查询没有得到最新记录?

    我有一个模型类 class PlatformUsage db Model tablename platform usage id db Column db BigInteger primary key True module db Colu
  • div内的表格溢出

    我有一个非常基本的 CSS 问题 我有一个高度固定的 div 并且该 div 内有一个表格 除非 div 具有滚动条 否则表格的内容将无法容纳在 div 中 现在的问题是 表格的内容溢出了 div 因为它的高度超过了我在 div 上设置的高
  • Jenkins 中的 pipelinev shell 返回问题 termios.error: (25, 'In合适的 ioctl for device')

    我的 Jenkins 有一个问题 当我运行作业时 Jenkins 遵循以下步骤 1 pipenv install r requirements txt 2 pipenv shell 在这一步出现了这个错误 pipenv shell 17 2
  • json_encode() 中的编码

    包含 或其他特殊字符的字符串怎么会返回 null 不仅保留特殊字符 而且整个字符串 值 都返回为 null EDIT class JSON static function encode arr utf8 encode false arr s
  • 获取 href onclick 并使用链接重定向

    我正在尝试执行以下代码 通过单击特定的 a 标签从一个页面重定向到另一页面 并附加 clk 变量中的特定链接 function abc var a document getElementsByTagName a alert a for va
  • AndEngine:处理与 TMX 对象的碰撞

    我现在设法加载 tmx 地图 我想创建精灵无法移动的障碍 我像这样恢复了障碍 try final TMXLoader tmxLoader new TMXLoader this this mEngine getTextureManager T
  • JSON 模式 oneOf 属性已填充

    如何设置 JSON 架构规则来表明必须设置并且是必需的属性之一 我尝试了各种方法来解决它 例如 id required true additionalProperties true type object properties surnam