且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何使用JSON.net引用外部文件?

更新时间:2023-01-17 21:42:19

我的一个想法是浏览模式,如果有对外部文件的引用,则使用通用的JsonSchemaResolver

是的,您需要知道您的架构所依赖的架构,首先解析它们并将其添加到JsonSchemaResolver中.架构将使用其ID进行解析.

Yes, you need to know which schemas your schema depends on, parse those first and add them to a JsonSchemaResolver. The schemas will be resolved using their IDs.

这是一个示例(使用draft-03语法):

Here's an example (using draft-03 syntax):

var baseSchema = JsonSchema.Parse(@"
{
  ""$schema"": ""http://json-schema.org/draft-03/schema#"",
  ""id"": ""http://mycompany/base-schema#"",
  ""type"": ""object"",

  ""properties"": {
    ""firstName"": { ""type"": ""string"", ""required"": true}
  }
}
");

var resolver = new JsonSchemaResolver
    {
        LoadedSchemas = {baseSchema}
    };

var derivedSchema = JsonSchema.Parse(@"
{
  ""$schema"": ""http://json-schema.org/draft-03/schema#"",
  ""id"": ""http://mycompany/derived-schema#"",
  ""type"": ""object"",

  ""extends"":{ ""$ref"": ""http://mycompany/base-schema#""},

  ""properties"": {
    ""lastName"": { ""type"": ""string"", ""required"": true}
  }
}
", resolver);

小提琴: https://dotnetfiddle.net/g1nFew