我有一个模式,它有一个'manager'属性,它是一个用户对象:
{
"id": "foo.com/schemas/user",
"manager": {
"anyOf": [{
"$ref": "#/definitions/user"
}],
"title": "Manager"
}
#/definitions/user schema 是:
"definitions": {
"user": {
"$ref": "#"
}
}
这会导致"解析架构引用'#'时出错。路径"定义.用户"错误。
使用管理器属性中的"$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://资格。