问题标签 [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.
jsonschema - 如何在 JSON Schema 中使用来自外部文件的定义?
我正在尝试使用从另一个 json 模式导入定义,$ref
但出现以下错误:
can't resolve reference ../base/definitions.schema.json#/definitions/datetime from id #
目录结构:
p>我通过使用绝对路径、file
url 和其他几种路径组合尝试了几种组合。不知道发生了什么。
模式验证器:ajv@5.1.1
node.js - JSON Schema / AJV 数组项必须在另一个数组中
我正在使用 Node 的 AJV(它强制执行 JSON 模式)。
我想验证 array1 properties.bars
。很容易。
然后我想确保 array2 中的一个项目properties.keep
在 array1 中properties.bars
。
我该怎么做呢?
我有:
json - 从 JSON Schema 中的属性数据验证属性键
我需要验证以下内容: Json data: { tag: 'picture', picture: 'some string'}
Json模式:{标签:{'type':'string'},??????? // 第二个key应该是'tag'的数据值
编辑:我希望用 ajv 模式验证器来完成这个
谢谢!!
node.js - Nodejs:SyntaxError 异常 - 尝试要求 ajv.js 时面临“意外的新令牌”
尝试要求 Ajv 模块时发生异常。
vm.js 中发生异常
有什么建议可以纠正这个问题吗?
javascript - 如何使用 JsonSchema 进行实时客户端验证?
我正在评估使用JSON Schema来验证表单数据。
当您单击使用AJV提交时,我可以使用它来验证我的表单数据,然后使用JSON Schema 的 PHP 实现在服务器上再次检查它。
这部分听起来不错,但我试图弄清楚如何将它用于实时验证——即,在您填写表单/打字时进行验证。
具体来说,我可以在每次击键时运行整个验证器,但是当只有一个输入发生变化时验证整个表单似乎很昂贵。特别是,任何基于 AJAX 的验证(例如用户名唯一性检查)都会过于频繁地触发。
有没有人为此使用过 JsonSchema?可行吗?我将如何微调 AJV 或其他 JsonSchema 实现以仅运行输入所需的验证器?
json - 使用 Fastify 和 AJV 验证请求模式
背景
我正在使用 Fastify 构建一个 API,这是我第一次使用 JSON 模式验证。这个想法是,它既可以提高服务器代码的效率,又可以帮助我们的开发人员学习如何使用我的 API。
问题
我正在尝试验证一条允许客户端仅按名称查询小猫的路线。一个成功的已形成查询将看起来/kittens?name=fluffykins
。
我的这条路线的架构如下所示:
问题
如何让我的模式验证器只接受查询name
并拒绝其他查询,例如/kittens?age=1
?我的偏好是架构验证器独立于我的控制器代码来处理它,并且它还支持我们将来可能添加的查询。
谢谢!
javascript - 如何从 AJV 错误中获取“标题”?
我有一个如下所示的 JSON 模式:
如您所见,我已将title
s 添加到所有属性中。但是,我得到的错误对象看起来像:
如您所见,title
不在其中。我怎样才能得到有错误的标题?
请注意,这个问题是针对AJV的。
jsonschema - 在 JSON Schema 中使用 ref 来引用磁盘上的本地模式
我有一个 JSON 模式文件:
我想针对 json 对象验证这一点。所以我用这个模式创建了一个该类型的临时对象:
我有这个 JSON 数据文件:
这里的目标是不要将我的临时对象嵌入到类类型的 JSON 模式中。(是的,我的一个问题是我正在尝试将 OO 技术应用于 JSON。这是真的,我这样做只是出于重用和继承的原因,可能有更好的方法。)
当我去验证这个我得到这个错误:
如何在另一个模式中包含 JSON 模式?
也可以看看:
validation - 带有完美消息的 JSON 模式验证
我将 REST 调用中的数据条目分为 4 个部分。数据可以通过以下方式发送到 REST 调用:-
- 标题
- 查询参数
- 路径参数
- 请求正文
因此,为了验证上述 4 个部分中是否存在任何键,我以这种格式创建了一个模式。因此,如果我必须验证查询参数中的任何内容,我将添加键“查询”,然后在其中添加字段,这需要验证
现在,在我的快速代码中,我创建了一个请求对象,以便我可以测试这种格式的 JSON 的有效性。
我使用AjV针对我的模式验证上述请求对象(在 A 处)。
我得到的输出如下所示:
现在我有一个问题清单:
- 为什么即使我的变量名称是request(在 A 处) ,消息也会在data/headers和data/params/orgId中显示数据字
- 另外为什么不使用我的错误消息,就像我提到的 orgId 的情况一样:应该至少23长度(在 B 处)作为消息,即使这样消息来也不应该短于 23 个字符。
- 如何显示request/headers而不是data/headers。
另外,我用来验证路径参数、查询参数、标题参数、正文参数的方式是正确的方式,如果不是,那么还有什么更好的方式来做同样的事情?
请阐明一些观点。
提前致谢。