问题标签 [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 回答
7248 浏览

jsonschema - 如何在 JSON Schema 中使用来自外部文件的定义?

我正在尝试使用从另一个 json 模式导入定义,$ref但出现以下错误:

can't resolve reference ../base/definitions.schema.json#/definitions/datetime from id #

目录结构:

p>

我通过使用绝对路径、fileurl 和其他几种路径组合尝试了几种组合。不知道发生了什么。

模式验证器:ajv@5.1.1

0 投票
1 回答
1090 浏览

node.js - JSON Schema / AJV 数组项必须在另一个数组中

我正在使用 Node 的 AJV(它强制执行 JSON 模式)。

我想验证 array1 properties.bars。很容易。

然后我想确保 array2 中的一个项目properties.keep在 array1 中properties.bars

我该怎么做呢?

我有:

0 投票
1 回答
606 浏览

json - 从 JSON Schema 中的属性数据验证属性键

我需要验证以下内容: Json data: { tag: 'picture', picture: 'some string'}

Json模式:{标签:{'type':'string'},??????? // 第二个key应该是'tag'的数据值

编辑:我希望用 ajv 模式验证器来完成这个

谢谢!!

0 投票
1 回答
676 浏览

node.js - Nodejs:SyntaxError 异常 - 尝试要求 ajv.js 时面临“意外的新令牌”

尝试要求 Ajv 模块时发生异常。

vm.js 中发生异常

有什么建议可以纠正这个问题吗?

0 投票
1 回答
1568 浏览

javascript - 如何使用 JsonSchema 进行实时客户端验证?

我正在评估使用JSON Schema来验证表单数据。

当您单击使用AJV提交时,我可以使用它来验证我的表单数据,然后使用JSON Schema 的 PHP 实现在服务器上再次检查它。

这部分听起来不错,但我试图弄清楚如何将它用于实时验证——即,在您填写表单/打字时进行验证。

具体来说,我可以在每次击键时运行整个验证器,但是当只有一个输入发生变化时验证整个表单似乎很昂贵。特别是,任何基于 AJAX 的验证(例如用户名唯一性检查)都会过于频繁地触发。

有没有人为此使用过 JsonSchema?可行吗?我将如何微调 AJV 或其他 JsonSchema 实现以仅运行输入所需的验证器?

0 投票
2 回答
1528 浏览

json - 使用 Fastify 和 AJV 验证请求模式

背景

我正在使用 Fastify 构建一个 API,这是我第一次使用 JSON 模式验证。这个想法是,它既可以提高服务器代码的效率,又可以帮助我们的开发人员学习如何使用我的 API。

问题

我正在尝试验证一条允许客户端仅按名称查询小猫的路线。一个成功的已形成查询将看起来/kittens?name=fluffykins

我的这条路线的架构如下所示:

问题

如何让我的模式验证器只接受查询name并拒绝其他查询,例如/kittens?age=1?我的偏好是架构验证器独立于我的控制器代码来处理它,并且它还支持我们将来可能添加的查询。

谢谢!

0 投票
1 回答
222 浏览

javascript - 使用 Polymer 2.0 并要求

我正在尝试将 JSON Schema 验证器ajv合并到 Polymer 2.0 组件中。可以用npm加载

我在 Polymer 2.0 组件中实例化 ajv 时遇到问题。

访问 ajv 是通过 require 完成的:

如何在我的 Polymer 2.0 元素中加入 ajv?

0 投票
1 回答
1603 浏览

javascript - 如何从 AJV 错误中获取“标题”?

我有一个如下所示的 JSON 模式:

如您所见,我已将titles 添加到所有属性中。但是,我得到的错误对象看起来像:

如您所见,title不在其中。我怎样才能得到有错误的标题?

请注意,这个问题是针对AJV的。

0 投票
2 回答
1635 浏览

jsonschema - 在 JSON Schema 中使用 ref 来引用磁盘上的本地模式

我有一个 JSON 模式文件:

我想针对 json 对象验证这一点。所以我用这个模式创建了一个该类型的临时对象:

我有这个 JSON 数据文件:

这里的目标是不要将我的临时对象嵌入到类类型的 JSON 模式中。(是的,我的一个问题是我正在尝试将 OO 技术应用于 JSON。这是真的,我这样做只是出于重用和继承的原因,可能有更好的方法。)

当我去验证这个我得到这个错误:

如何在另一个模式中包含 JSON 模式?

也可以看看:

0 投票
2 回答
4786 浏览

validation - 带有完美消息的 JSON 模式验证

我将 REST 调用中的数据条目分为 4 个部分。数据可以通过以下方式发送到 REST 调用:-

  1. 标题
  2. 查询参数
  3. 路径参数
  4. 请求正文

因此,为了验证上述 4 个部分中是否存在任何键,我以这种格式创建了一个模式。因此,如果我必须验证查询参数中的任何内容,我将添加键“查询”,然后在其中添加字段,这需要验证

现在,在我的快速代码中,我创建了一个请求对象,以便我可以测试这种格式的 JSON 的有效性。

我使用AjV针对我的模式验证上述请求对象(在 A 处)

我得到的输出如下所示:

现在我有一个问题清单:

  1. 为什么即使我的变量名称是request(在 A 处) ,消息也会在data/headersdata/params/orgId中显示数据
  2. 另外为什么不使用我的错误消息,就像我提到的 orgId 的情况一样:应该至少23长度(在 B 处)作为消息,即使这样消息来也不应该短于 23 个字符
  3. 如何显示request/headers而不是data/headers

另外,我用来验证路径参数、查询参数、标题参数、正文参数的方式是正确的方式,如果不是,那么还有什么更好的方式来做同样的事情?

请阐明一些观点。

提前致谢。