问题标签 [tv4]

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 回答
242 浏览

angularjs - 在以角度模式形式验证表单元素时获取“请添加错误消息”

我目前正在使用 angular-schema-form ( https://github.com/json-schema-form/angular-schema-form ) 来生成基于 json 模式的表单。表单按预期生成,但在验证时给我一个错误“请为 tv4-xxx 添加错误消息”以及实际的验证消息。

注意:如果重要的话,我的工作代码使用 UI-Bootstrap 而不是 Bootstrap。

我尝试过的事情:

  1. 创建本地代码并导入所有必需的依赖项并运行应用程序。我能够使用适当的错误消息成功验证表单字段,并且没有收到“请为 tv4-xxx 添加错误消息”错误消息。

  2. 我的工作代码使用 bower 添加它的所有依赖项,据我所知,它已经在代码中添加了所有必需的依赖项,但它仍然给出了这个错误。

错误截图:

验证错误消息

预期的是实际的验证错误,但它会返回消息“请为 tv4-xxx 添加错误消息”以及不希望出现的实际验证错误。

0 投票
1 回答
493 浏览

postman - 如何将 tv4.validateMultiple 中的所有失败记录到具有正确失败状态的测试结果选项卡中

我已经能够获得从 tv4.validateMultiple 生成的错误消息以显示在测试结果中,但我无法弄清楚如何将它们设置为显示失败状态。

测试结果选项卡中记录了多条消息,但状态为通过。使用“旧式”邮递员测试 [],您可以将其设置为 false。但这不能在 for 循环中使用,因为测试将在第一次失败时结束。pm.test 将继续,但状态为通过。

我尝试将 pm.test('Schema is valid', function() {pm.expect...} 放在 for 循环中,但收到消息“不要在循环中创建函数”消息。所以我尝试拉外面的功能部分,这也不起作用。

我也尝试过 Ajv 并设置 allErrors: true。

我要做的就是验证整个响应并在测试选项卡和 xtrareports 中报告所有失败。

0 投票
1 回答
1576 浏览

postman - 在 Postman 中验证 JSON 模式

使用 Postman 时,我像这样验证 JSON 响应:

工作正常,除了错误报告。我得到的错误对象丢失了dataPathschemaPath我的用户很难找出实际问题出在哪里。有没有办法获得这些属性?(尝试 validateResult 和 validateMultiple 无济于事)

作为替代方案,我尝试了 ajv,但由于我在草案 04 中,它给了我错误。他们网站上的建议

不起作用,因为邮递员沙箱不允许我要求……有什么想法吗?

另见:https ://community.getpostman.com/t/json-schema-validation-troubles/5024

0 投票
2 回答
903 浏览

postman - tv4.validate 总是返回 true。即使我的架构无效,即:var == "dummy"

tv4.validate 将始终返回 true。无论模式是有效的 JSON 还是只是虚拟字符串。我浏览 stackoverflow 以查找相关问题,而 banUnknownProperties 对我没有帮助

正如我所说,我什至尝试将模式变量更改为“虚拟”,而 tv4 仍然没有发现错误。那是我在 stackoverflow 上的第一篇文章。对不起,如果我的问题不清楚。

有效回复如下

我使用多线程建议的https://jsonschema.net/获得了我的模式变量。您可以粘贴有效响应并将此 JSON 推断为 Schema。我不会在这里提供我的架构以节省空间。

这是我的测试代码:

实际反应是:

并且 tv4 在这里看不到任何错误

0 投票
1 回答
153 浏览

json - 我可以使用 tv4 验证 json Schema Draft-7 吗?

我必须升级一个使用 json 模式验证 json 的 javascript 应用程序。旧版本是使用tv4来验证json schema draft 4。我需要在新软件中使用draft-7。

我只是在当前代码中替换了一个 draft-7 json 文件。一开始它运行良好,但后来该应用程序开始显示一些与 tv4 相关的错误。

我的问题是我可以将 tv4 与 Draft-7 一起使用吗?是否有任何 Draft-7 库来替换 tv4?

0 投票
1 回答
68 浏览

node.js - 使用带有 tv4 的 patternProprties 进行 json 模式验证

我有一个像这样的json:

其中第一个键是有效的 http 方法,可以是 - post、get 等在运行时所有有效的 http 方法。

这是我的架构

有人可以帮忙吗?

0 投票
2 回答
897 浏览

postman - 使用 postman 和 tv4 针对具有多个元素的 json 数组验证 jsonschema

下面是我的 JSON 模式

下面是要验证的json

这里元素“stations”在模式中被标记为必需,但在 json 的第二个项目中缺少它。仍然通过了 tv4 验证。

我们真正需要的是,它应该无法通过验证,因为第二个 Item 中缺少 station 元素

观察结果是如果任何 JSON 项中都不存在站元素,则验证失败。但是,如果站元素存在于其中一项中,则通过验证

我尝试了具有真假值的 tv4 选项“checkRecursive”...仍然通过了验证

任何帮助表示赞赏

0 投票
1 回答
39 浏览

jsonschema - 使用 tv4 的可选 Json 验证 - Javascript

我正在尝试使用tv4. 它正在工作并且验证返回True

但是,在我的情况下,JSON 集合"first, second, and third"不会一直可用。

在这种情况下如何编写模式?

我的 JSON 数据

JSON 模式