递归 JSON 架构

2023-12-13

我正在尝试为带有子菜单的菜单创建正确的 JSON 架构。 所以我应该从 item 定义一个数组,其中应包含三个项目。 1 显示名称,2 URL 和子项(应该是具有相同结构的对象数组)

此时我得到了这个:

{
    "type": "array",
    "additionalProperties": false,  // have no idea what is this for :)
    "items": {
        "type": "object",
        "additionalProperties": false, // have no idea what is this for :)
        "description": "MenuLink",
        "id": "menuLink",
        "properties": {
            "display_name": {
                "type": "string",
                "title": "Link display name",
                "minLength": 2
            },
            "url": {
                "type": "string",
                "title": "URL address",
                "minLength": 2
            },
            "children": {
                "type": "array",
                "title": "Childrens",
                "additionalItems": false,  // have no idea what is this for :)
                "items": {
                    "$ref": "menuLink"
                }
            }
        },
        "required": [
            "display_name",
            "url"
        ]
    }
}

问题是它只对第一级菜单有效

任何帮助将不胜感激


数组中的additionalProperties 不执行任何操作,它只是被忽略。对于对象,它不允许“属性”中未定义的任何其他属性

该模式可能有效也可能无效,具体取决于验证器。参考解析是最棘手的问题,很少有验证器能够正确完成。看看这个:https://github.com/ebdrup/json-schema-benchmark

更传统的方法来创建你想要的东西:

{
  "definitions": {
    "menuLink": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "display_name": {
            "type": "string",
            "title": "Link display name",
            "minLength": 2
        },
        "url": {
            "type": "string",
            "title": "URL address",
            "minLength": 2
        },
        "children": {
            "type": "array",
            "title": "Childrens",
            "items": { "$ref": "#/definitions/menuLink" }
        }
      },
      "required": [ "display_name", "url" ]
    }
  },
  "type": "array",
  "items": { "$ref": "#/definitions/menuLink" }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

递归 JSON 架构 的相关文章

  • 将多个 JSON 记录读取到 Pandas 数据帧中

    我想知道是否有一种内存有效的方法将多记录 JSON 文件 每行都是一个 JSON 字典 读取到 pandas 数据帧中 下面是一个包含有效解决方案的 2 行示例 我需要它来处理可能非常大量的记录 示例用途是处理 Hadoop Pig Jso
  • 删除 JSON 根

    我在 JavaScript 变量上有以下字符串 my Variable Domini cod domini 1 nom domini Sant Esteve de Palautordera cod domini 2 nom domini P
  • Swagger 定义中的 BigDecimal 作为 String

    我想定义一个对象大十进制作为字符串swagger json 现在我可以做 MyObject type object properties amountOfMoney type string pattern d d name type str
  • 调试测试时从 local.setting.json 读取值

    在运行或调试测试时 我似乎无法从天蓝色函数中的该文件中读取任何内容 但是在本地调试整个应用程序时它工作得很好 任何人都可以解释为什么吗 IsEncrypted false Values xyz 123 var res Configurati
  • JSON 到数据表

    我正在尝试将 JSON 文本序列化为 DataTable 如下所示 List
  • R、GeoJSON 和 Leaflet

    我最近从 R Bloggers com 的帖子中了解了 leafletjs com 我想要实现的一个此类教程是使用传单创建交互式分区统计图 http leafletjs com examples choropleth html http l
  • 阻止跨域调用 asp.net .asmx Web 服务

    我构建了一个应用程序 它使用 jQuery 和 JSON 来使用 ASP NET asmx Web 服务来执行增删改查操作 应用程序和 asmx 位于同一域中 我不介意人们远程消耗 asmx 的读取操作 但不希望人们随机删除内容 我可以将我
  • 如何理解javascript React中的这段代码

    我在网上找到了这个函数在js中的实现 这个函数递归地过滤一个对象数组 每个对象可能有属性 children 它是对象数组 并且对象也可能有孩子等等 该函数工作正常 但我有点不明白 这是我的功能 getFilteredArray array
  • 使用具有不同参数的 Jackson for List 将 JSON 映射到 pojo

    JSON 格式 0 cast showname woh pagle type Episodes video src video mp4 DRM False 这里的问题是我遇到以下异常 org codehaus jackson map Jso
  • 我的递归条件是否正确计算二叉树高度?

    我想在你的帮助下知道我的代码是对还是错 因为遗憾的是我无法运行它来检查 没有编译错误 我想做的是找到二叉树的高度 当然 树不必是平衡的 二叉树中的每个节点可以有两个节点作为子节点 http en wikipedia org wiki Bin
  • 将 open() 作为 json.load() 参数传递会使文件句柄保持打开状态吗?

    我编写了一个小型 Web 应用程序 对于每个请求 我都应该打开并读取一个 JSON 文件 我在用pickledb https pythonhosted org pickleDB 以此目的 我担心的是图书馆通过了open 作为参数json l
  • 将 jQuery 数组字符串转换为 PHP 数组

    首先 我得说我对 PHP 还很陌生 我正在尝试获取一个可以使用 foreach 的 PHP 对象 以下字符串通过 ajax 传递 我正在尝试转动以下字符串 menu title TEST1 href title TEST2 href QWE
  • RestSharp反序列化JSON内容(代表一个对象包含字节数组)错误

    Client端收到正式的JSON内容 Id 1 2 3 Size 56 但在反序列化字节数组时出现错误 1 下面的语句出现错误 IRestResponse
  • 如何在 json 文件上使用 jq 过滤器时限制缩进

    我的输入 JSON 文件是 name abc private true version 1 0 0 description UI dependencies xyz 9 11 abc 5 0 0 当我使用jq name xyz 输出将打印为
  • Firebase 中的递归错误太多

    我的全局作用域中有一个函数 用于侦听 FB 引用上的值 function updateCredits userID var userRef database ref users userID userRef on value functio
  • 使用 slice 函数对 JSON 对象进行切片

    我想对 JSON 数组进行切片 但出现以下错误 对象 没有方法 切片 以下是我的代码 scope getPagedDataAsync function pageSize page searchText setTimeout function
  • Racket:识别尾递归?

    我在球拍中编写了两个不同的函数来确定数字列表是否升序 define ascending list if lt length list 1 t and lt car list car cdr list ascending cdr list d
  • $.parseJSON() 在有效对象上返回 null

    jsfiddle 链接 http jsfiddle net YmUmp 1 var x Item1 1 Item2 Item3 3 alert JSON stringify x undefined 2 alert parseJSON x 第
  • JSON 语法:传输数组

    A validJSON 语法是这样的 username admin password 123 但是如果我想传输一组 用户 给出的例子 而不是单个 用户 根据规范 下面的代码是有效的 JSON 吗 username admin passwor
  • 将新行 JSON 上传到 Elasticsearch 批量 API

    我正在尝试使用 Bulk API 将新行 JSON 上传到 Elasticsearch 我上传的批量 JSON 如下所示 每个 JSON 都占一个新行 ip x x x x seen true classification maliciou

随机推荐

  • 创建 1D NumPy 数组的 NoN 填充元素的滑动窗口

    我有一个时间序列x 0 x 1 x n 1 存储为一维numpy大批 我想将其转换为以下矩阵 NaN NaN x 0 NaN x 0 x 1 NaN x 0 x n 3 x n 2 x 0 x 1 x n 2 x n 1 我想使用这个矩阵来
  • BundleTransformer.Less 根据上下文/请求注入变量

    我们希望使用捆绑机制System Web Optimization与 Less 变压器结合使用 问题在于同一应用程序 服务器为不同品牌的网站提供页面 因此 根据 SiteContext 使用相同的 less 文件 但 less 变量应使用不
  • 编译器如何处理字符串插值

    我正在对方法属性使用字符串插值 例如 const string User SomeUser const string Admin Admin Authorize Roles User Admin public IHttpActionResu
  • swiftui,动画应用于父效果子动画

    RectangleView有滑动动画 他的子TextView有旋转动画 我想当 Go 时 RectangleView 及其子组件 TextView 作为一个整体滑入屏幕 easeInOut 按下 并且 TextView 永远旋转 线性 但实
  • 在 VBA 中跨工作表指定 Excel 范围

    在VBA中 为什么以下会失败 Dim rng as Range rng Range Sheet1 Sheet3 A1 它抛出一个 HRESULT 异常 还有另一种方法可以在 VBA 中构造这个范围吗 请注意 您可以输入 SUM Sheet1
  • 高阶函数和 ST

    我正在玩http hackage haskell org packages archive vault 0 2 0 0 doc html Data Vault ST html并想编写如下函数 onVault f runST f lt gt
  • 接受用于填充“url_for”方法的 URL 参数是否安全?

    我正在使用 Ruby on Rails 4 1 1 并且我正在考虑接受直接传递到的参数 通过 URL 查询字符串 url for方法 这样 URL in the browser http www myapp com redirect to
  • 浮点型和双精度型有什么区别?

    我读过有关双精度和单精度之间的区别的内容 然而 在大多数情况下 float and double似乎可以互换 即使用其中之一似乎不会影响结果 事实真的如此吗 浮点数和双精度数什么时候可以互换 它们之间有什么区别 差异巨大 As the na
  • Javascript读取文件夹中的文件

    我有以下问题 我正在尝试用 javascript 解决 我有一个 div 其背景图像在 css 文件中指定 我希望我的 javascript 定期更改该图像 假设每 5 秒一次 我知道该怎么做 问题是我有一个图像文件夹可供选择作为背面图像
  • 如何查看 mongoDB 中的任何更改(新行)?

    有没有办法观察每一个collection 甚至一个 中mongoDB 现在我考虑计时器来检查文档编号或最后一个 ID 但也许有可能实现类似的机制newDocumentAddedEvent MongoDB 中还没有触发器 还没有 但是如果您正
  • 将 R 中的多个绘图导出到 ppt 中

    我在这里找到了一个函数 可以为在 R 中创建的绘图创建带有幻灯片的 ppt 这是该函数的链接 R 将当前活动的 R 图导出到 Powerpoint Word LibreOffice 的功能 我希望我的程序添加几张幻灯片 每张幻灯片包含一张图
  • ' aria-label='如何判断浏览器是否支持 '> 如何判断浏览器是否支持

    可能的重复 HTML5 类型检测和插件初始化
  • PythonInfo 没有 virtualenv 实现

    我遇到 virtualenv 实现错误 我知道 python2 7 很旧 但仍然需要 有人有解决办法吗 PythonInfo base exec prefix None system stdlib u usr lib python2 7 h
  • 为什么我们必须在内部类中将静态变量声明为final? [复制]

    这个问题在这里已经有答案了 我的代码是这样的 public class BookStore class Enumerator1 static int b 0 requires final public String searchBook f
  • 跨域请求和JQuery

    我尝试使用 getJSON 通过 jquery 向 Web 服务发出跨域请求 它工作正常 但是 当我尝试在 Internet Explorer 7 或 8 中发出相同的请求时 该请求永远不会发送 有人有主意吗 JSONP 就是为了这个目的而
  • 在 Perl 中如何找到所有重定向后的最终 URL?

    可以说我有 http www ritzcarlton com 这将我重定向到 http www ritzcarlton com en Default htm Perl 有没有办法在所有重定向后找到最终网址 使用 LWP 将为您遵循重定向 然
  • 在 JavaScript 中反转字符串

    我正在尝试反转输入字符串 var oneway document getElementById input field value var backway oneway reverse 但萤火虫告诉我oneway reverse 不是一个函
  • VS2015 中的 CoreCLR 控制台应用程序项目中没有本机代码调试?

    我真的很想跳过 CoreCLR 新的项目结构 nuget 合并到构建系统 文件系统报告更改时自动刷新解决方案以及针对多个平台只是我想从旧的 csproj net 继续前进的部分原因4 x 的东西 我的主要用例之一是使用 C 探索多平台游戏引
  • 如何将“字符串列表”变成真正的列表?

    我正在开一个 txt文件 并且必须使用其中的列表来执行我正在编写的函数 这是文本文件中给出的列表之一 24 72 95 100 59 80 87 n Using strip 它摆脱了 n 所以就变成 24 72 95 100 59 80 8
  • 递归 JSON 架构

    我正在尝试为带有子菜单的菜单创建正确的 JSON 架构 所以我应该从 item 定义一个数组 其中应包含三个项目 1 显示名称 2 URL 和子项 应该是具有相同结构的对象数组 此时我得到了这个 type array additionalP