当前位置: 首页 > 知识库问答 >
问题:

Spring REST API中的Json模式验证

徐丰茂
2023-03-14

我正在使用Spring Boot和[jackson-module-jsonSchema](https://github.com/fasterxml/jackson-module-jsonSchema)构建一个REST API,用于生成JSON模式。我正在寻找一种最好的方法来验证到达我的APIendpoint(Spring控制器)的请求JSON有效负载,该有效负载是根据为公开资源定义的已定义JSON模式进行的,验证包括检查所需字段、格式、最小值和最大值等。我们可以根据模式验证的所有内容。

jackson json模式模块对模式生成很有用,但对验证没有用,对吗?有什么建议可以实现我的目标吗?

共有1个答案

刘焱
2023-03-14

如果您查看一下JSON模式站点,那么在Java中只有两个用于验证的库。

  1. Jorge Campos建议的ont已经成熟,但正在寻找新的维护者:https://github.com/fge/json-schema-validator
  2. 第二个比较新:http://github.com/everit-org/json-schema

我最近遇到的情况是,我必须选择一个或另一个,我选择了第一个选项。它也被放心图书馆在引擎盖下使用。

 类似资料:
  • 我有一个用例,我将把一个json-schema作为输入,验证它,然后保存在我的系统中。稍后,我将获取json数据,我需要使用上面提到的json-schema来验证这些数据。给定这个场景,我需要执行两个级别的验证: 我使用的是json-schema-validator jar,只能找到第二级验证,在文档中找不到json-schema验证。例如:假设我们有以下示例json-schema:

  • 我试图使用另一个JSON模式来验证JSON模式。 要验证的JSON模式示例:https://jsonschema.net/home 验证上述模式的验证模式参考:https://github.com/ajv-validator/ajv/blob/master/lib/refs/json-schema-draft-07.json 从上面的中,如果我删除,我的JSON将变得无效。 我有什么方法可以定义根

  • 问题: 有没有一种普通的或本机的javascript方法来根据JSON模式验证JSON脚本? 我在Github上找到了很多库,但没有原生/普通的解决方案。EcmaScript没有对此的规范吗?没有浏览器(或nodejs)有办法原生验证JSON吗? 问题的背景: 我有一个非常复杂的模式,我开发了一个。它应该与一个脚本一起工作,该脚本要求传入其中的 JSON 数据符合架构。

  • 问题内容: 有没有一种方法可以针对该结构的JSON模式验证JSON结构?我已经查看并发现JSON.Net验证了,但这并不能满足我的要求。 JSON.net可以: 这证明是正确的。 这也证明是真的 仅此验证为假。 理想情况下,我希望它可以验证那里也没有应该存在的字段。 问题答案: 我认为您只需要添加 到您的架构。这将停止提供未知属性。 因此,现在您的结果将是:-正确,错误,错误 测试代码… 输出:-

  • 这是要根据模式验证的JSON。 问题是,如果我们传递了错误的数据,它将正确地验证eid和ename的类型(即整数或字符串)。对于例如: 如果我们为限定传递了错误的类型,那么它将验证为true(即,它不验证限定的类型,可能是因为它是嵌套的)。

  • 我在验证JSON时遇到了一些错误。我无法理解这些错误,有人能帮我解释一下吗。 } 这是json。 消息:JSON与“anyOf”中的任何模式都不匹配。架构路径: 消息:无效类型。应为数组,但得到的是字符串。架构路径: 消息:值“标识”载体“未在枚举中定义。架构路径: 消息:字符串“uui # abb 0 ef 56-8562-4056-aa62-AFB 758 a 150 ad”未根据格式“uri