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

如何使用json模式验证字符串和数字

霍修筠
2023-03-14

我希望根据模式的maximal/minimum(number)或maximumlength/minimumlength(string)来验证模式。我有一个json表单:

[
  {
    "key":"foo",  
    "title":"Test",
    "type":"string" 
  }
]
    {
 "type": "object",
  "properties": {
    "foo": {
        "type": ["number","string"],
        "maxLength":2,
        "minLength":0,
        "minimum":3,
        "maximum":10
    }
  }
}
{
  "foo": "bar"
}

为什么这个例子不能使用验证?我的模型未验证为false。根据本文档,可以在数组中定义不同的类型,但是如何基于最小/最大值进行验证呢?

共有1个答案

魏鸿禧
2023-03-14

您的架构是正确的。您正在使用的验证程序不能正常工作。这里有一个替代方案,它使用anyof

{
    "type": "object",
    "properties": {
        "foo": {
            "anyOf": [
                { "$ref": "#/definitions/boundedNumber" }
                { "$ref": "#/definitions/boundedString" }
            ]
        }
    },
    "definitions": {
        "boundedString": {
            "type": "string",
            "maxLength": 2,
            "minLength": 0
        },
        "boundedNumber": {
            "type": "number",
            "minimum": 3,
            "maximum": 10
        }
    }
}

虽然它很长,但有些人会认为这实际上更容易阅读/维护,因为它分离了特定于类型的关键字。

 类似资料:
  • 问题内容: 我很难找到最简单的方法来针对给定的JSON模式字符串验证JSON字符串(作为参考,这是在Java中运行在Android应用程序中)。 理想情况下,我只想传入JSON字符串和JSON模式字符串,并且它返回关于是否通过验证的布尔值。通过搜索,我发现了以下两个有前途的库可以完成此任务: http://jsontools.berlios.de/ https://github.com/fge/j

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

  • 本文向大家介绍如何在C#中使用TryParse验证数字表示形式的字符串,包括了如何在C#中使用TryParse验证数字表示形式的字符串的使用技巧和注意事项,需要的朋友参考一下 以下是我们的字符串- 若要检查上面是否是带有数字表示形式的字符串,请使用TryParse and out。 这是完整的代码。 示例 输出结果

  • 我有一个电子邮件地址字段,其中有一个客户端验证,不允许几个临时域,如tempmailder.com或dispostable.com. 在服务器端,我使用了fluent验证来指定验证规则。 web中不允许的临时域。将文件配置为逗号分隔的字符串。 我是否可以指定一种方法来验证用户根据不允许的电子邮件域列表输入的值。 谢啦

  • 我不知道如何正确设置超架构以使用json架构验证器。我使用的是json模式验证器的java版本,版本是2.2.5。 我的模式是: 我的 json 对象是: 现在,当我将模式加载到并打算开始验证时,我得到以下警告: 除了$Schema字段之外,还有什么要配置以使用超模式的吗?