如何组合 Json 模式
Posted
技术标签:
【中文标题】如何组合 Json 模式【英文标题】:How to combine Json schemas 【发布时间】:2021-12-30 10:52:23 【问题描述】:我有一个 C# 应用程序,其中包含多个类,其属性对应于 Json 文件中的条目。
我想根据我将使用 NewtonSoft 的模式生成器为类型创建的 Json 模式验证 Json 文件,例如
JSchema schema = generator.Generate(typeof(ClassName))
。
我的问题是,这将为每个类生成一个 Json 模式,我想针对所有这些模式验证 Json 文件。
如何将 Json 模式组合成一个大的超级模式?
【问题讨论】:
如果您能提供更多关于这些多个类如何在这个“超级模式”中交互的信息,这可能会有所帮助。每个类都是子属性吗?它们是否重叠(例如,来自不同类的属性混合在同一个 JSON 对象中)?也许包含更多您的代码,格式为minimal?除了使事情更清楚之外,这也使帮助您的人更容易,因为他们没有从头开始重写您的所有课程等 【参考方案1】:模式生成后,如果您希望模式生成一个,则可以使用 oneOf
和 $ref
方法。
"oneOf": [
"$ref": "your path here", // the root schema, defining the object
"type": "array", // the schema.
"items": "$ref": "your path here"
]
【讨论】:
以上是关于如何组合 Json 模式的主要内容,如果未能解决你的问题,请参考以下文章