使用JSchema手动创建JSON模式参考

时间:2018-08-14 19:58:52

标签: json.net jsonschema

我正在使用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创建引用的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以这样设置$ ref属性

JSchema propertySchema = new JSchema();
propertySchema.ExtensionData["$ref"] = "Common.json#/definitions/Text";

schema.Properties.Add("Text", propertySchema);