依赖于嵌套值的存在
Dependency on the existence of a nested value
我可以获得 dependencies
来处理非嵌套值(架构中的顶级),但我希望依赖项依赖于嵌套在其中的 属性 object
定义。
const schema = {
type: "object",
properties: {
start: {
type: "object",
properties: {
time: {
type: "string"
}
}
}
},
dependencies: {
start: {
properties: {
end: {
type: "object",
properties: {
time: {
type: "string"
}
}
}
}
}
}
};
本质上,我想要一种方法让依赖项依赖 而不是 start
属性,而是依赖 start.time
属性.
我查看了 this 问题,答案指出模式无法“向上”查找树,但我不完全确定“向上”和“向下”在此上下文中的含义。
依我看,如果依赖可以依赖于start
,而time
是start
中的一个属性,那么time
就是“向下”树,而不是“向上”(?)
存在 dependencies
关键字是为了简化特定用例的架构。它牺牲了一些灵活性和表现力以获得更简单的语法。尽管您的用例非常相似,但它超出了 dependencies
可以做的范围。好消息是有办法做到这一点。
这个,
{
"dependencies": {
"some-propery-name": { ... some-schema ... }
}
}
相当于,
{
"if": { "required": ["some-property-name"] },
"then": { ... some-schema ... }
}
您可以从那里推断来描述您的用例。
{
"if": {
"properties": {
"start": { "required": ["time"] }
},
"required": ["start"]
},
"then": { ... some-schema ... }
}
我可以获得 dependencies
来处理非嵌套值(架构中的顶级),但我希望依赖项依赖于嵌套在其中的 属性 object
定义。
const schema = {
type: "object",
properties: {
start: {
type: "object",
properties: {
time: {
type: "string"
}
}
}
},
dependencies: {
start: {
properties: {
end: {
type: "object",
properties: {
time: {
type: "string"
}
}
}
}
}
}
};
本质上,我想要一种方法让依赖项依赖 而不是 start
属性,而是依赖 start.time
属性.
我查看了 this 问题,答案指出模式无法“向上”查找树,但我不完全确定“向上”和“向下”在此上下文中的含义。
依我看,如果依赖可以依赖于start
,而time
是start
中的一个属性,那么time
就是“向下”树,而不是“向上”(?)
存在 dependencies
关键字是为了简化特定用例的架构。它牺牲了一些灵活性和表现力以获得更简单的语法。尽管您的用例非常相似,但它超出了 dependencies
可以做的范围。好消息是有办法做到这一点。
这个,
{
"dependencies": {
"some-propery-name": { ... some-schema ... }
}
}
相当于,
{
"if": { "required": ["some-property-name"] },
"then": { ... some-schema ... }
}
您可以从那里推断来描述您的用例。
{
"if": {
"properties": {
"start": { "required": ["time"] }
},
"required": ["start"]
},
"then": { ... some-schema ... }
}