在定义中引用 # 不解析 inJson.net 模式

Refs to # in a definition don't parse inJson.net schema

我有一个具有 'manager' 属性 的模式,它是一个用户对象:

{
  "id": "foo.com/schemas/user",
  "manager": {
    "anyOf": [{
      "$ref": "#/definitions/user"
    }],
    "title": "Manager"
}

#/definitions/user 架构是:

"definitions": {
  "user": {
    "$ref": "#"
  }
}

这会导致“解析架构引用 '#' 时出错。路径 'definitions.user'”错误。

使用经理 属性 的 "$ref": "#" 称呼用户不是一个选项,因为我们正在使用该定义来帮助构建 UI 并且需要一个通用定义.

编辑:添加了 "id" 属性,这是一个重要的遗漏。

这个有效:

{
  "id": "http://foo.com/schemas/user",  
  "properties":{  
    "manager":{  
      "anyOf":[  
        {  
          "$ref":"#/definitions/user"
        }
      ],
      "title":"Manager"
    }
  },
  "definitions":{  
    "user":{  
      "$ref":"#"
    }
  }
}

https://github.com/JamesNK/Newtonsoft.Json.Schema/issues/33

编辑:添加了固定的 "id" 字段并添加了 http:// 限定。