c# - 如何将枚举约束添加到 JSchema 对象?
问题描述
我正在使用 Json.net Schema 成功地将 C# 中的 JSON 模式对象构建为 [JSchema][1] 对象。我希望我的架构将一些字符串限制为某些值。
似乎 enum 关键字可以做到这一点,我看到 JSchema 确实有一个看起来很有希望的 enum 属性,但它是只读的。见https://www.newtonsoft.com/jsonschema/help/html/P_Newtonsoft_Json_Schema_JSchema_Enum.htm
文档中似乎没有其他明显的内容,因此我正在寻找有关如何将枚举约束添加到架构的建议。
更详细一点:
以这种方式构建 JSchema(从 JSchema 开始并构建它)的原因是因为我们需要从使用不同数据定义语言的模式转换为 JSON。
以下代码有效:
{
"$schema": "http://json-schema.org/draft-06/schema#",
"type": "object",
"properties": {
"First": {
"type": "string",
"minLength": 1,
"maxLength": 5
}
}
}
它产生:
{
"$schema": "http://json-schema.org/draft-06/schema#",
"type": "object",
"properties": {
"First": {
"type": "string",
"minLength": 1,
"maxLength": 5
}
}
}
我正在寻找添加
"enum": ["circle", "square", "triangle"]
作为 minLength 和 maxLength 之外的附加约束(我知道对 am 枚举进行长度约束可能没有内在意义,但我只是想弄清楚如何使用枚举。)
解决方案
您可能可以改用它:
"oneOf": [{"const": "circle"}, {"const": "square"}, {"const": "triangle"}]
推荐阅读
- r - 如何将字符向量转换为变量名和str_count?
- javascript - $(...).mask 不是一个函数,具体取决于它被调用的位置
- c# - 如何在 C# 中启用在图片框上绘图
- c - getrusage 的大部分字段应该为 0 吗?
- javascript - 我想在 js 中制作一个不和谐的音乐机器人
- python - 当我将空字符串作为参数时,“count”字符串方法会返回什么?
- c++ - std::filesystem / boost::filesystem for mac os
- mysql - Nodejs Expess 脚本无法创建 Mysql 数据库表
- python - 如何将字符串中的数字作为python中的单个元素提取到列表中?
- python - 区分^J和
在诅咒中