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

JSON模式重复属性

竺国兴
2023-03-14
{
    "$schema": "http://json-schema.org/draft-04/schema#", 

    "definitions": {
        "main.schema": {
            "properties": {
                "value": {
                    "description": "Status", 
                    "type": "boolean"
                }
            }, 
            "type": "object"
        }
    }, 
    "allOf": [
    {
        "$ref": "baseResource.json#/definitions/baseResource"
    }, 
    {
        "$ref": "#/definitions/main.schema"
    }
    ],
    "id": "main.schema.json#", 
    "required": [
        "value"
    ], 
    "title": "Title", 
    "type": "object"
}
{
    "$schema": "http://json-schema.org/draft-04/schema#", 
    "allOf": [
        {
            "$ref": "#/definitions/baseResource"
        }
    ], 
    "definitions": {
        "baseResource": {
            "properties": {
                "id": {
                    "description": "SomeDesc", 
                    "type": "string"
                }, 
                "value": {
                    "type": [
                        "string", 
                        "boolean"
                    ]
                }
            }, 
            "type": "object"
        }
    }, 
    "id": "baseResource.json#", 
    "required": [
        "id"
    ], 
    "title": "Base Resource", 
    "type": "object"
}

什么类型的价值适合于此?值应该只是布尔值(根据主模式),或者可以是布尔值或字符串(在正确的地方引用基资源)。我使用的JSON验证器不允许值为布尔值以外的任何值,我在JSON规范中搜索了很多,但没有关于它的信息。

共有1个答案

羊舌承颜
2023-03-14

在这种情况下,value必须是布尔值。

ALLOF语句意味着JSON数据必须对所有列出的模式有效。

  • baseResouce要求字符串或布尔值
  • main.schema要求为布尔值
 类似资料:
  • 是否可以定义一次regex并重用它?我有几个非常复杂的正则表达式,我想将它们用作模式,用于模式中各种不同对象的大量属性的值。复制粘贴这个看起来像是自找麻烦,但我似乎找不到合适的重用示例。 删去说明我想做什么的模式。 在http://www.jsonschemavalidator.net/中不进行验证,因为“pattern”不是字符串。这是一个重复使用的洞吗。我看过patternProperties

  • 试图学习JSON模式,我有一个复杂的模式,都是基于相对URL的。当嵌套属性调用另一个文件中定义的definitions属性时,验证有时会被忽略。 我的目标是基本上在全局范围内创建可重用的定义和经常使用的枚举/常量/定义 假设项目树为: 在intellij中,结果如下:(显示的每个属性都不应该是有效的,但有些属性只是被忽略和允许(如负数和空值等)。我没有收到关于$ref无法解析的警告/错误。自动完成

  • 使用自定义属性扩展JSON模式有效吗? 我问这个问题的原因是,因为我使用一个模式来为该模式描述的JSON呈现一个表单(模式中描述的每个属性都用作带有标签和某种输入的表单元素)。 能够使用一些我主要用于表单呈现的属性来扩展模式是很有用的,但是当使用模式来验证JSON对象本身时,就会忽略这些属性。 对于JSON对象,我可以有两种不同的表示形式(一种是模式,另一种是类似模式的对象,它具有自定义属性,我只

  • 我一直在努力使我的JSON模式正确。我有一个属性,我必须根据它来确定所需的属性。下面是我的示例,我希望通过验证,因为不存在。 这是我希望通过验证的JSON 类似地,如果是,那么上述两个JSON的验证都应该通过。

  • 的模式是什么,它生成的字符串看起来像 2013-11-22T14:30:03.2148 02:00 ?