【发布时间】:2018-08-14 19:58:52
【问题描述】:
我正在使用 JSchema 创建手动 JSON 模式。通常,我会像这样指定 JSchema 属性的属性:
JSchema props = new JSchema();
props.Properties.Add(KeyName), new JSchema { Type = JSchemaType.String });
但是,对于某些对象,我希望属性是对另一个模式中的属性的引用。当我手动执行此操作时,此方法有效:
"text": {
"$ref": "Common.json#/definitions/Text"
}
我想要做的是使用 JSchema 自动生成上述属性。 JSchema 有一个名为 Reference 的属性,但我找不到任何有关如何使用它的文档。我试过这样做:
props.Properties.Add("Text", new JSchema { Reference = new Uri("Common.json#/definitions/Text", UriKind.RelativeOrAbsolute) });
但是不行。使用 JSchema 创建引用的正确方法是什么?
【问题讨论】:
-
以上代码的结果是什么?有错误吗?它会产生不正确的 JSON(如果是,它是什么样的)?
-
有了这段代码,我什么也得不到。架构中根本没有 Text 属性。
-
我能看到的唯一例子是newtonsoft.com/jsonschema/help/html/…,但这并没有解释如何进行外部引用。除非您有任何特定原因,否则我会手动构建 JSON Schema 文件,然后将它们加载进去。我不喜欢“自动生成的类文档就是文档”……它很糟糕。如果您已付费,请直接联系他们的支持人员。
-
问题解决了吗?我也在尝试解决这个问题:/
标签: json.net jsonschema