我有一个用于指定将唯一字符串名称映射到唯一数字的枚举的杨森模式.

这是模式,是的,我知道它并不能保证上述要求,但我目前并不为此烦恼.

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Module",
"description": "Schema for module definitions",
"type": "object",
"properties": {
    "enums": {
        "type": "object",
        "patternProperties": {
            "^.[^.\"]*$": {
                "$ref": "#/$defs/enum"
            }
        },
        "additionalProperties": false
    }
},
"additionalProperties": false,
"$defs": {
    "enum": {
        "type": "array",
        "items": {
            "type": "array",
            "items": [
                {
                    "type": "string"
                },
                {
                    "type": "integer"
                }
            ],
            "minItems": 2,
            "maxItems": 2
        }
    }
}
}

我正在从Json.net转换到System.Text.Json Jsonschema.net. 以下是通过json.net验证的示例SON对象,但没有通过Jsonschema.net验证,大概是因为后者更重视"$schema": "https://json-schema.org/draft/2020-12/schema".

{
"enums": {
    "Drive Types": [
        [
            "DOL", 1
        ],
        [
            "VSD", 2
        ],
        [
            "Servo", 3
        ]
    ],
    "Conveyor State": [
        [
            "Off", 0
        ],
        [
            "Faulted", 1
        ],
        [
            "Idle", 2
        ]
    ]
}
}

我想做的是修改我的模式(和SON对象),以便它能够根据Draft 2020-12进行严格验证. 我怎么能做到呢?

推荐答案

2020-12年,items不再具有数组形式.已被prefixItems所取代.您的模式可以用prefixItems替换内部2元素数组items关键字,这应该是正确的.

参见:https://json-schema.org/draft/2020-12/draft-bhutton-json-schema-01#name-keywords-for-applying-subschemahttps://json-schema.org/understanding-json-schema/reference/array

Json相关问答推荐

在Vega中如何通过滑块改变条形图的宽度

集成wix.comstore API|变音符号问题

Jolt-Json转换:通过引用标识符(而不是索引)设置值

使用 JSON 和相对日期设置日历视图中 SharePoint 列表项的背景 colored颜色 格式

震动范围改善

打印与 JSON 和 PowerShell 中的模式匹配的子项的父项名称

使用 serde 和 csv crates 将嵌套的 json 对象序列化为 csv

try 使用 JQ 转换 JSON 中过于复杂的对象数组

golang递归json来构造?

将文本转换为 python 列表

boost::json::value 的大括号初始化将其从对象转换为数组

使用 jq 将键值行转换为 json

使用 @ResponseBody 自定义 HttpMessageConverter 来做 Json 事情

如何从Typescript 中的json响应中获取日期对象

如何在 swift 2 中获取 Alamofire.request().responseJSON 的结果值?

如何在 Rails 模型中验证字符串是否为 json

获取一个数字的 PHP 对象属性

为什么 JavaScript 的 eval 需要括号来判断 JSON 数据?

杰克逊在通用列表中读取 json

Laravel 5 控制器将 JSON 整数作为字符串发送