无法引用来自其他文件的$ ref模式

时间:2018-07-11 04:49:02

标签: c# .net json visual-studio json.net

如何引用其他文件中的架构?

在尝试$ref架构时,我在Visual Studio中收到以下警告:

  

不支持应用于文档的架构类型。

我正在尝试使用JSchema

                var schema = JSchema.Parse(@"{
  '$schema': 'http://json-schema.org/draft-06/schema#',
  'properties': {
                    'address': {
                        '$ref': 'MyOtherFile.Address.json#/definitions/address'
                    }
                }
            }
            ");

MyOtherFile.Address.json的内容:

{
  "$schema": "http://json-schema.org/draft-06/schema#",
  "type": "object",
  "definitions": {
    "address": {
      "title": "Address",
      "addressLine1": {
        "type": "string"
      },
      "addressLine2": {
        "type": "string"
      },
      "city": {
        "type": "string"
      },
      "country": {
        "type": "string"
      },
      "state": {
        "type": "string"
      }
    }
  }
}

这是VS的样子:

Here's the output from Visual Studio.

我在做什么错?如何引用其他文件中的架构?

1 个答案:

答案 0 :(得分:0)

对于documentation,您必须在对JSchemaUrlResolver()的调用中添加参数(JSchema.Parse)才能解析外部模式:

var schema = JSchema.Parse(@"{
  '$schema': 'http://json-schema.org/draft-06/schema#',
  'properties': {
                    'address': {
                        '$ref': 'MyOtherFile.Address.json#/definitions/address'
                    }
                }
            }
            ", new JSchemaUrlResolver()); //here's the change