对象数组的 AJV 模式验证

2024-02-21

我正在尝试使用 AJV 模式验证来验证对象数组。下面是示例代码

var Ajv = require('ajv');
var schemaValidator = Ajv();

var innerSchema = {
"type" : "object",
"properties" : {
    "c" :  {
        "type" : "string"
    },
    "d" : {
        "type" : "number"
    }
},
"required" : ["c"]
}

var innerArraySchema = {
"type": "array",
"items" : {
    "#ref": innerSchema
}
}

var schema = {
"type" : "object",
"properties" : {
    "a" :  {
        "type" : "string"
    },
    "b" : {
        "type" : "string"
    },
    "obj" : innerArraySchema
},
"required" : ["a"]
}

var testSchemaValidator = schemaValidator.compile(schema);

var data = {"a": "123","b" : "abc", "obj" : [{
"d" : "ankit"
}]}


var valid = testSchemaValidator(data);

console.log(valid);

if(!valid) {
    console.log(testSchemaValidator.errors);
}

我在这里缺少什么吗?我不想在数组定义本身中添加属性对象。


使用以下方法解决了该问题:

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

对象数组的 AJV 模式验证 的相关文章

  • Yeoman-Angular 生成的应用程序中缺少 Angular 脚本

    我已经使用 Yeoman Angular Generator 生成了一个应用程序 但项目中缺少 angular js 和其他 Angular 文件 我可以在 Bower json 文件中看到这些依赖项 如下所示 name mi portfo
  • 全局 JavaScript 变量作用域:为什么这不起作用?

    所以我在玩 JavaScript 时遇到了我认为奇怪的事情 有谁能解释一下以下内容吗 我已将警报值作为评论包含在内 为什么 foo 中的第一个警报 msg 返回不明确的并不是outside var msg outside function
  • 从 Angular 6 服务中绑定图像

    我有一个端点 它根据某些参数为我提供图像 这不是一个图像网址 而是一个普通图像 因此 当我到达邮递员中的端点时 作为响应 我收到一张图像 JPG 我是否可以在变量中接收该图像并将其绑定到 HTML 标签中 所有问题都有将图像 url 映射到
  • 将字符串转换为变量名。 (JavaScript)

    我确实查看了前面的问题 但它们是针对整数值的 我需要文本值的答案 我在本周早些时候问了一个与此相关的问题 但现在是这样 如下所示 我使 Make x 等于某个字符串值 Acura Honda Toyota 当我将 Make x 传递到函数
  • 使用 word_number 值对 javascript 数组进行排序

    如何对数组进行排序 var arr new Array word 12 word 59 word 17 这样我得到 word 12 word 17 word 59 Thanks 您需要编写一个排序方法 您可以编写任何您喜欢的方法 该方法在
  • 过滤器返回 true 或 false

    我正在使用过滤器在 data it 返回对象中查找 id 它返回的对象不是 true 或 false 如果我怎样才能返回 true 或 falseval recoredId valueId var hasMatch data filter
  • AttachEvent 或 addEventListener - 存储在哪里?

    在 jQuery 中 如果我这样做 a click function Do something 点击事件存储在 a data events 我可以像这样获取它 jQuery each a data events function i eve
  • 使用 getElementById 在 javascript 中使用正则表达式进行 Html 表单验证?

    我想使用正则表达式验证 html 表单的示例模式 AAA 111 2222 aa 1234 目前 我的代码要么为所有输入返回 正确 要么为所有输入返回 不正确 并且我无法弄清楚我的问题出在哪里 var x document getEleme
  • React.js this.props.data.map() 不是一个函数

    我正在搞乱反应并尝试解析和渲染 json 对象 现在 我只是使用硬编码对象设置它以进行测试 而不是从 ajax 调用中获取它
  • Google Maps JS Api - b.get 不是函数错误(isLocationOnEdge)

    我想检查我的路线上是否有标记 所以我尝试使用 isLocationOnEdge 但收到 TypeError b get 不是函数 错误 这是我的代码 我尝试了几次更改但无法解决问题 var directionsDisplay new goo
  • JQuery _renderItem 没有被调用

    我正在尝试使用 renderItem 函数创建自定义 ui menu item 元素 但经过可能尝试后 我什至无法调用该函数 自动完成功能正在工作 但就像 renderItem 函数不存在一样 这是我的脚本部分
  • Django 模板变量从 {% for %} 循环到 Javascript

    这是一个迭代记录的 Django 模板 每条记录都包含一个由 JS 函数填充的 div 为了让 JS 知道要做什么 它需要从每次 for 循环迭代中获取一个变量并使用它 我不知道具体如何实现这一目标或是否可能 我不知道 也许记录在单独的 J
  • 从 UnityWebGL jslib 返回字符串

    我想使用 jslib 来获取网址参数 像这样的代码 jslib GetUrl function var s var strUrl window location search var getSearch strUrl split var g
  • 无法在 postgres insert 中插入问号

    我正在尝试运行一个简单的 Postgres SQL 插入 insert into Resources values 1 How are you 但插入后的结果是 ID Data 1 How are you 1 我知道 要插入单引号等字符 我
  • Node.js:将 repl 挂接到远程节点服务器

    假设我有一个节点服务器在 mysite com 上运行 有没有办法设置该服务器以便我可以使用节点的repl api http nodejs org docs latest api repl html to securely从我的本地计算机连
  • 如何在 Astro 中的组件之间共享状态?

    我相信我在代码中采用了错误的方法 如何在按钮单击中设置客户端首选项 该按钮单击用作全局 astro 组件中的道具 或者我应该怎么做 我知道这是可能的 因为 astro js 本身在他们的文档网站中这样做了 下面是我的尝试的解释 我目前正在开
  • 如何在javascript中解析 yyyy-MM-dd HH:mm:ss.SSS 格式的日期?

    const time 2016 11 16 00 00 00 000 const date new Date time console info date 似乎 safari 无法解析 yyyy MM dd HH mm ss SSS 格式日
  • 使用重复模式捕获正则表达式

    我试图捕获字符串的所有部分 但我似乎无法正确处理 该字符串具有以下结构 1 22 33 中间有运算符的数字 可以有任意数量的术语 我想要的是 1 22 33 1 22 33 但我得到 1 22 33 22 33 我尝试过各种正则表达式 这是
  • 谷歌地图绘制两点之间的路线

    我编写了这段无辜的 JavaScript 代码 它允许用户创建两个标记并绘制它们之间的路线 它不起作用 相反 它给出了一个奇怪的错误 Uncaught TypeError Cannot read property ya of undefin
  • 通过jquery ajax()和serialize()提交html表单

    我想通过 jquery ajax 提交此表单 这是我所做的 但它不起作用 即表单正在提交并刷新页面 但我没有看到响应 即在同一页面上打印数组 HTML

随机推荐

  • Chrome webtools 调试器自行恢复脚本执行

    我在 Chrome 开发工具中看到了奇怪的行为 我在 JavaScript 中设置了一个断点 然后断点命中并停止执行 代码窗口显示了我的代码中的断点所在的点 该窗口具有淡黄色背景颜色 然后 5 秒后执行自动神奇地恢复 而无需我告诉它 以前有
  • Angular 2 - 什么相当于 Root Scope?

    全部 我有这个组件 当我单击 href 时 如果它是 Angular 1 则应该将变量设置为根范围 如下所示 selector my component template div constructor this addTag functi
  • 在C中将十进制转换为二进制

    我正在尝试将十进制转换为二进制 例如 192 到 11000000 我只需要一些简单的代码来执行此操作 但到目前为止我的代码不起作用 void dectobin int value char output int i output 5 0
  • Angular同步http循环更新进度条

    我正在尝试使用 foreach 内的顺序 http 请求来更新进度条 这可行 但它在完成时不同步 进度条正在通过 http 调用同步 我做错了什么 angular forEach queue function item if item ui
  • F#:实现函数名与关键字begin相同的接口

    我正在尝试实现 IVector 接口 它是 Microsoft VisualC StlClr 命名空间的一部分 它有一个成员函数begin 如果我尝试实现该接口 那么它会抱怨 对象表达式中出现意外的关键字 开始 这是因为 begin 是一个
  • glibc中的CSU代表什么?

    我正在读一本article http dbp consulting com tutorials debugging linuxProgramStartup html在C启动时 它指的是函数 libc csu init 谁能告诉我 CSU 代
  • 在打字稿中应该定义什么类型的超时

    我正在尝试在打字稿中编写一个去抖函数 但不确定要设置分配给什么类型的变量setTimeout 我的代码如下所示 function debounced func gt void wait number what type should tim
  • Ajax 操作 URL 不起作用 + Symfony2

    我想使用 jquery 自动完成功能进行 ajax 调用 如下所示 register player team autocomplete source function request response ajax url path volle
  • VIM:全局匹配行,删除此行和以下2行

    以下是我的想法 g All Claims t 0 3d 但这不起作用 在这种模式下乘以一个动作似乎是无效的语法 我最终得到了以下序列 qq All Claims t 0 3dd q 10000 q 这种宏观组合效果很好 我只是好奇是否有一些
  • Webpack:将 html 部分包含在另一个部分中?

    有没有办法使用 webpack 将 html 部分包含在另一个部分中 我正在使用 html loader 来执行此操作 索引 html 但是当我尝试在 header html 中包含另一个部分时 它无法渲染它 这是行不通的 header h
  • 在 GEdit 中创建您自己的语法突出显示?

    如何将 关键字 添加到 GEdit 关键字列表中 我基本上想让 printf 函数看起来像一个关键字 printf Hello World n GEdit 使用Gtk源视图 http projects gnome org gtksource
  • 基于 XMPP 协议的 Google Cloud Messaging(使用 PHP 和 XMPPHP 的服务器)。它是如何工作的?

    也许你已经听说过它 它是在一个月前的 Google IO 上宣布的 Google Cloud Messaging 仅位于下游 服务器 gt 电话 但现在通过增强的 CCS 云连接服务器 您可以通过持久 TCP 连接向上游发送消息 这要归功于
  • 标准定义的setjmp备注

    ISO IEC 9899 1999 7 13 1 1 setjmp 宏 环境限制 4 应出现 setjmp 宏的调用 仅在以下情况之一 整个控制 选择或迭代语句的表达式 a 的一个操作数 关系运算符或相等运算符 另一个操作数为整数 常量表达
  • 由于异步图像加载,图像的宽度和高度为零

    我有一个很长的base64输入我得到的字符串 我想将其设置为src图像的 img attr src base64data console log height img height console log width img height
  • Pandas 按每列分组并为每组添加新列

    我有一个像这样的数据框 lvl1 l1A l1A l1B l1C l1D lvl2 l2A l2A l2A l26 l27 wgt 2 3 15 05 3 lvls lvl1 lvl2 df pd DataFrame wgt lvls re
  • 多行字符串作为序列的一部分

    我不知道如何使用多行字符串作为 yaml 序列的一部分 foo bar bar2 gt super duper long string that I would like to have on multiple lines Another
  • Sql -WITH ... AS 的替代方案

    有没有一个高效的这个例子的替代SQL 我不想使用WITH AS 这是主要标准 WITH TEMP TABLE AS SELECT status COUNT 1 as total FROM XYZ GROUP BY status SELECT
  • Elastic beanstalk ebextensions/config:找不到包“libffi”

    这是我的配置 我在 ebextensions 中只有 2 个配置 01run config 和 02do config ebextensions 01run config packages yum python27 devel postgr
  • 无法运行 scons 并出现导入错误

    我已经安装了 scons 2 3 2 并安装了 python 2 4 当我运行 scons 时 我看到以下错误 scons Import failed Unable to find SCons files in usr bin engine
  • 对象数组的 AJV 模式验证

    我正在尝试使用 AJV 模式验证来验证对象数组 下面是示例代码 var Ajv require ajv var schemaValidator Ajv var innerSchema type object properties c typ