问题标签 [ajv]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1711 浏览

javascript - 如何描述和验证以 cuid 作为键、将值作为具有特定属性的对象的对象数组

我有一个我正在尝试验证的唯一数据:

这是我现在的作文(无效且不正确):

以及我如何验证它(针对上下文):

以下是我到目前为止所引用的内容:

1)对象数组的 AJV 模式验证

2) https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md

3) https://spacetelescope.github.io/understanding-json-schema/reference/object.html

附加信息:

1) 使用节点 8.1.3

2) AJV 5.2

我知道我需要使用一组项目来描述对象。然而,该对象包含一个唯一的 cuid 作为键和作为对象的值。我想了解如何使用验证嵌套属性和 cuid 的模式来描述这些数据。我欢迎有关如何最好地处理这些数据的反馈。感谢您的时间。

0 投票
1 回答
277 浏览

validation - 使用 AJV 设置类型的默认规则

我试图弄清楚如何在全局范围内说所有数组的长度必须为 1 而不必使用 minItems: 1 我指定数组的架构中的每个位置。我正在考虑创建自定义类型,这是一种选择,但我觉得应该有更好的方法?

另一个全局限制是不允许任何空字符串。

谢谢您的帮助!

0 投票
0 回答
478 浏览

javascript - JSON 模式使用条件验证 oneOf

如何为下一个对象设置 json 模式验证器?他们都有场account_id,但options都是依赖type

如果twitter它有列表tokens,则每个都有四个字段。如果typeinstagram,则每个标记在 中只有一个字段 tokens。并且 forfacebook type字段options必须为空。

是否可以制作满足这些要求的 json 模式?type当每个定义都包含在关键字中时,即使是最简单的模式oneOf也不起作用。

感谢您的任何建议!

0 投票
1 回答
3061 浏览

node.js - ajv 验证失败并显示正确的架构“数据不应具有其他属性”

我正在使用ajv在将某些 JSON 数据写入数据库之前对其进行验证。我的请求数据基本上看起来像这样(例如):

文档:

这将传递给 ajv 验证器:

这就是 Testschema.out 的样子

Testschema 认为:

虽然 someDefinition 持有这一点:

但是,验证失败,并且我得到的错误是"data should NOT have additional properties"明确地,“anotherId”模式中的任何内容由于某种原因验证失败。如果我在哪里将“id”属性添加到 Testschema,那么验证就会通过。

0 投票
1 回答
2641 浏览

json - 使用 ajv 验证 json 模式时获取错误类型/值

我正在尝试使用 json 模式来验证 api 的 json。

我找到了 ajv 库,它似乎是 node.js 中最受欢迎的。

刚刚获得基础知识,我将我的模式定义为

然后我将它导入我的验证器

并使用 mocha (with mochaccino) 测试输出

按照来自ajv github 页面的指示,我希望我的测试会失败,因为所需的类型是字符串并且我提供了一个数字。但是我得到的响应ajv.errorsText()No Errors它应该提供错误的地方。

看起来很简单,我做错了什么?

0 投票
1 回答
666 浏览

ajv - 基于属性值 true 或 false 的 Ajv 条件模式

}

请帮忙。:) 根据属性值调节有问题。我需要根据简单的条件验证 JSON:

  • if attributes.is_generic === false> 帐户和场所属性应存在于关系属性中
  • 如果attributes.is_generic === true> 只有场地应该在场

预先感谢。

准备好基本架构:

谢谢你的帮助

0 投票
1 回答
9059 浏览

node.js - 如何将关键字 Nullable(或 allowNull)添加到 Ajv 中?

我写了以下代码。

但它不起作用。如何编写这样的验证器?

即使 compile 函数总是返回 true,它仍然没有通过验证。

代码可以在 Node-sandbox 中测试: https ://runkit.com/khusamov/59965aea14454f0012d7fec0

0 投票
5 回答
9642 浏览

json - 使用 AJV 在 json 模式中验证空值

我正在使用 Ajv 来验证我的 JSON 数据。我无法找到将空字符串验证为键值的方法。我尝试使用模式,但它没有抛出适当的消息。

这是我的架构

我正在使用 minLength 来检查该值是否应包含至少一个字符。但它也允许空白空间。

0 投票
1 回答
3082 浏览

javascript - JSON模式+相对JSON指针:如何验证“确认密码”字段

这是我的JSON 架构

这是我的数据:

你可以将它们复制粘贴到这个在线验证器中,看看会发生什么。

confirmPassword字段验证失败并显示错误消息:

值“asdfasdf”与 const 不匹配。

我相信我的相对 JSON 指针有问题,但我不知道正确的语法是什么。

AFAICT,1/password意思是“上一层,然后检查password属性”,但似乎并非如此。什么是正确的语法?

我正在使用的具体实现是 AJV,它表示它确实 支持 relative-JSON-pointers

0 投票
1 回答
738 浏览

javascript - Json Schema AJV not: const: 错误信息不明确

在我的模式中Ajv使用时,我发现很难处理错误消息。not在我的用例中,我想验证两个道具的价值不同。考虑这个例子:

模式.json

数据

输出

错误消息告诉我not被拒绝,但真正相关的信息const是不满意。

有没有人有提示或解决方法如何获得此用例的有意义的错误消息?