C# 如何将枚举约束添加到JSchema对象?
我正在使用JSON.net模式成功地将C#中的JSON模式对象构建为[JSchema][1]对象。我希望我的模式将一些字符串约束为某些值 enum关键字似乎可以做到这一点,我看到JSchema确实有一个enum属性,看起来很有希望,但它是只读的。看 文档中似乎没有其他明显的内容,因此我正在寻找有关如何将枚举约束添加到模式的建议 再详细一点: 以这种方式构建JSchema的原因(从JSchema开始并构建出来)是因为我们需要从不同数据定义语言的模式转换为JSON 以下代码起作用:C# 如何将枚举约束添加到JSchema对象?,c#,json.net,jsonschema,C#,Json.net,Jsonschema,我正在使用JSON.net模式成功地将C#中的JSON模式对象构建为[JSchema][1]对象。我希望我的模式将一些字符串约束为某些值 enum关键字似乎可以做到这一点,我看到JSchema确实有一个enum属性,看起来很有希望,但它是只读的。看 文档中似乎没有其他明显的内容,因此我正在寻找有关如何将枚举约束添加到模式的建议 再详细一点: 以这种方式构建JSchema的原因(从JSchema开始并构建出来)是因为我们需要从不同数据定义语言的模式转换为JSON 以下代码起作用: { "$sc
{
"$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 enum的长度约束可能没有内在意义,但我只是想弄清楚如何使用enum。)我认为使用JSchema对象不可能一点一点地构建模式。我不认为它是为这个用例设计的 我可以看到生成JSchema的两种方法:
我认为使用JSchema对象不可能一点一点地构建模式。我不认为它是为这个用例设计的 我可以看到生成JSchema的两种方法:
您可能可以改为使用此选项:
"oneOf": [{"const": "circle"}, {"const": "square"}, {"const": "triangle"}]
您可能可以改为使用此选项:
"oneOf": [{"const": "circle"}, {"const": "square"}, {"const": "triangle"}]
谢谢我在澄清问题的原始问题中,在“稍微详细一点”下添加了更多细节:@occamman您的两个代码示例是相同的。我想第一个应该是c#?谢谢。我在澄清问题的原始问题中,在“稍微详细一点”下添加了更多细节:@occamman您的两个代码示例是相同的。我相信第一个应该是c#?